引言
时间格式化指的是将时间按照一定格式展示出来。在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. 字符串和时间之间的转换
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/236469.html
微信扫一扫
支付宝扫一扫