引言
时间格式化指的是将时间按照一定格式展示出来。在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中时间格式化的基础知识,包括时间和日期格式化的常用标识符、时间的格式化方法、时间戳的格式化方法、字符串和时间之间的转换等。
小标题:
1. 时间和日期格式化的常用标识符
2. 时间的格式化方法
3. 时间戳的格式化方法
4. 字符串和时间之间的转换