引言
时间格式化指的是将时间按照一定格式展示出来。在Python中,有很多方法可以格式化时间,比如使用time模块和datetime模块,这些模块都提供了各种格式化时间的函数。 本文将介绍Python时间格式化的基础知识,包括时间和日期格式化的常用标识符、时间的格式化方法、时间戳的格式化方法、字符串和时间之间的转换等。
基础知识
时间和日期格式化的常用标识符
在Python中,时间和日期格式化的常用标识符如下表所示:
标识符 | 含义 | 示例 |
---|---|---|
%Y | 四位数的年份 | 2021 |
%m | 月份,用0填充至两位 | 01, 02, ..., 12 |
%B | 完整的月份名 | January, February, ..., December |
%b | 简写的月份名 | Jan, Feb, ..., Dec |
%d | 用0填充至两位的日期 | 01, 02, ..., 31 |
%A | 完整的星期几 | Sunday, Monday, ..., Saturday |
%a | 简写的星期几 | Sun, Mon, ..., Sat |
%H | 24小时制的小时数,用0填充至两位 | 00, 01, ..., 23 |
%I | 12小时制的小时数,用0填充至两位 | 01, 02, ..., 12 |
%p | 上午或下午 | AM, PM |
%M | 用0填充至两位的分钟数 | 00, 01, ..., 59 |
%S | 用0填充至两位的秒数 | 00, 01, ..., 59 |
时间的格式化方法
time模块和datetime模块都提供了strftime()函数用于时间格式化,该函数的语法如下:
strftime(format[, t])
其中,format
是格式化字符串,t
是表示时间的可选参数,默认为当前时间。下面是一个示例:
import time
# 获取当前时间
now = time.strftime("%Y-%m-%d %H:%M:%S")
print("当前时间为:", now)
执行以上代码,输出结果如下:
当前时间为: 2021-08-25 14:26:44
时间戳的格式化方法
在Python中,还可以使用time模块中的gmtime()
、localtime()
和strptime()
函数以及datetime模块中的fromtimestamp()
函数将时间戳格式化成字符串。下面分别介绍这些函数的使用方法。
1. gmtime()
函数
gmtime()
函数用于将一个时间戳转换为struct_time
格式的UTC时间。
gmtime([secs])
其中,secs
是时间戳,如果不传入该参数,将返回当前时间戳所对应的UTC时间。
以下是一个示例:
import time
# 获取当前时间戳
timestamp = time.time()
# 将时间戳转换为UTC时间
utc_time = time.gmtime(timestamp)
# 格式化输出utc_time
utc_time_str = time.strftime("%Y-%m-%d %H:%M:%S", utc_time)
print("utc时间为:", utc_time_str)
执行以上代码,输出结果如下:
utc时间为: 2021-08-25 06:26:44
2. localtime()
函数
localtime()
函数用于将一个时间戳转换为struct_time
格式的本地时间。
localtime([secs])
与gmtime()
函数类似,如果不传入secs
参数,将返回当前时间戳所对应的本地时间。
以下是一个示例:
import time
# 获取当前时间戳
timestamp = time.time()
# 将时间戳转换为本地时间
local_time = time.localtime(timestamp)
# 格式化输出local_time
local_time_str = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("本地时间为:", local_time_str)
执行以上代码,输出结果如下:
本地时间为: 2021-08-25 14:26:44
3. strptime()
函数
strptime()
函数用于将一个字符串解析为struct_time
格式的时间。函数的语法如下:
strptime(string[, format])
其中,string
是要解析的字符串,format
是字符串的格式,与strftime()
函数的格式相同。下面是一个示例:
import time
# 字符串时间
str_time = "2021-08-25 14:26:44"
# 将字符串转换为struct_time格式的时间
time_struct = time.strptime(str_time, "%Y-%m-%d %H:%M:%S")
# 输出time_struct
print(time_struct)
执行以上代码,输出结果如下:
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=25, tm_hour=14, tm_min=26, tm_sec=44, tm_wday=2, tm_yday=237, tm_isdst=-1)
4. fromtimestamp()
函数
fromtimestamp()
函数用于将一个时间戳转换为datetime
格式的时间。函数的语法如下:
fromtimestamp(timestamp[, tz])
其中,timestamp
是时间戳,tz
是时区,默认为None
。
以下是一个示例:
import datetime
# 获取当前时间戳
timestamp = datetime.datetime.now().timestamp()
# 将时间戳转换为datetime格式的时间
date_time = datetime.datetime.fromtimestamp(timestamp)
# 格式化输出date_time
date_time_str = date_time.strftime("%Y-%m-%d %H:%M:%S")
print("datetime时间为:", date_time_str)
执行以上代码,输出结果如下:
datetime时间为: 2021-08-25 14:26:44
字符串和时间之间的转换
在Python中,可以使用time模块和datetime模块实现字符串和时间之间的转换。下面分别介绍这些方法的使用方法。
1. 字符串转时间
在time模块中,可以使用strptime()
函数将字符串解析为struct_time
格式的时间。函数的语法如下:
strptime(string, format)
其中,string
是要解析的字符串,format
是字符串的格式,与strftime()
函数的格式相同。
以下是一个示例:
import time
# 字符串时间
str_time = "2021-08-25 14:26:44"
# 将字符串转换为struct_time格式的时间
time_struct = time.strptime(str_time, "%Y-%m-%d %H:%M:%S")
# 输出time_struct
print(time_struct)
执行以上代码,输出结果如下:
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=25, tm_hour=14, tm_min=26, tm_sec=44, tm_wday=2, tm_yday=237, tm_isdst=-1)
在datetime模块中,可以使用strptime()
函数将字符串解析为datetime
格式的时间。函数的语法如下:
datetime.datetime.strptime(date_string, format)
其中,date_string
是要解析的字符串,format
是字符串的格式,与strftime()
函数的格式相同。
以下是一个示例:
import datetime
# 字符串时间
str_time = "2021-08-25 14:26:44"
# 将字符串转换为datetime格式的时间
date_time = datetime.datetime.strptime(str_time, "%Y-%m-%d %H:%M:%S")
# 输出date_time
print(date_time)
执行以上代码,输出结果如下:
2021-08-25 14:26:44
2. 时间转字符串
在time模块中,可以使用strftime()
函数将struct_time
格式的时间转换为字符串。函数的语法如下:
strftime(format[, t])
其中,format
是格式化字符串,t
是表示时间的可选参数,默认为当前时间。
以下是一个示例:
import time
# 获取当前时间
now = time.localtime()
# 将时间转换为字符串
str_time = time.strftime("%Y-%m-%d %H:%M:%S", now)
# 输出str_time
print(str_time)
执行以上代码,输出结果如下:
2021-08-25 14:26:44
在datetime模块中,可以使用strftime()
函数将datetime
格式的时间转换为字符串。函数的语法如下:
strftime(format)
其中,format
是格式化字符串。
以下是一个示例:
import datetime
# 获取当前时间
now = datetime.datetime.now()
# 将时间转换为字符串
str_time = now.strftime("%Y-%m-%d %H:%M:%S")
# 输出str_time
print(str_time)
执行以上代码,输出结果如下:
2021-08-25 14:26:44
结语
本文介绍了Python中时间格式化的基础知识,包括时间和日期格式化的常用标识符、时间的格式化方法、时间戳的格式化方法、字符串和时间之间的转换等。
小标题:
- 时间和日期格式化的常用标识符
- 时间的格式化方法
- 时间戳的格式化方法
- 字符串和时间之间的转换