Python 3 – time strptime() 方法
介绍
Python 3 标准库中的 time 模块提供了 strptime() 方法,可以将字符串转换为时间类型。该方法将字符串和格式化描述符作为输入,按照给定的格式返回一个时间元组。
时间元组 (struct_time) 包含了 year, month, day, hour, minute, second, weekday, 和 Julian day 等。元组的函数是 time() 和 gmtime(),可以用来获取当前时间或 UTC 时间。
语法
time.strptime(string[, format])
参数:
- string — 待转换为时间类型的字符串。
- format — 数据字符串格式。
返回值:
返回 struct_time 时间元组。
示例
下面的示例展示了如何使用 strptime() 方法来将字符串转换为时间元组:
import time
pt = time.strptime("21 Oct 2021", "%d %b %Y")
print("time tuple:", pt)
输出:
time tuple: time.struct_time(tm_year=2021, tm_mon=10, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=294, tm_isdst=-1)
如上例所示,将字符串 “21 Oct 2021” 和格式描述符 “%d %b %Y” 作为参数传入 strptime() 方法。输出结果为一个时间元组,其中包含了年、月、日等时间信息。
下面是一些常用的时间格式描述符,用于将字符串转换为时间元组:
格式化描述符 | 说明 |
---|---|
%Y | 年份 |
%m | 月份 |
%d | 一个月的第几天 |
%H | 24 小时制的小时数 |
%M | 分钟数 |
%S | 秒数 |
%a | 星期几(缩写) |
%A | 星期几(全拼) |
%b | 月份(缩写) |
%B | 月份(全拼) |
%c | 日期时间的字符串表示(如:06/01/01 17:22:21) |
%p | am 或 pm |
下面的示例将一个时间字符串按指定格式解析为时间元组:
import time
fmt = "%Y-%m-%d %H:%M:%S"
t_str = "2021-10-21 15:23:10"
pt = time.strptime(t_str, fmt)
print("time tuple:", pt)
输出:
time tuple: time.struct_time(tm_year=2021, tm_mon=10, tm_mday=21, tm_hour=15, tm_min=23, tm_sec=10, tm_wday=3, tm_yday=294, tm_isdst=-1)
错误处理
如果输入的字符串和数据格式不匹配,会抛出 ValueError 异常。下面的示例展示了一个错误的格式化字符串:
import time
try:
# 尝试解析错误的时间格式字符串
pt = time.strptime("2021-10-21 15:23:10", "%Y/%m/%d %H:%M:%S")
except ValueError:
print("Error: invalid format")
输出:
Error: invalid format
结论
strptime() 方法十分实用,可以将字符串按照指定格式转换为时间元组,为我们在 Python 中操作时间提供了方便。在使用该方法时需要注意输入的字符串和格式描述符是否匹配,否则会抛出异常。