在 Python 编程中使用日期和时间时,经常使用两个方法:strftime() 和 strptime()。这两个方法用于格式化和解析日期和时间字符串。了解 strftime() 和 strptime() 之间的差异对于准确操作和显示代码中的日期和时间信息至关重要。
strftime() 方法
strftime() 方法用于将 datetime 对象格式化为字符串表示形式。
允许自定义特殊的格式,将 datetime 对象转换为人类可读的日期和时间字符串。
语法:
time.strftime(format[, t])
参数:
- format -- 格式字符串。
- t -- 可选的参数 t 是一个 struct_time 对象。
格式化符号:
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00=59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
示例:
import datetime
now = datetime.datetime.now()
formatted_date = now.strftime("%Y-%m-%d")
formatted_time = now.strftime("%H:%M:%S")
formatted_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)
print(formatted_time)
print(formatted_datetime)
# 输出:
2024-08-07
14:35:31
2024-08-07 14:35:31
注意事项:
strftime() 方法会认为 datetime 对象已包含正确的日期和时间值。如果 datetime 对象创建错误,strftime() 仍会格式化它,而不会出现任何错误警告。
strptime() 方法
strptime() 方法根据指定的格式把一个时间字符串解析为时间元组。
语法:
time.strptime(string[, format])
参数:
- string -- 时间字符串。
- format -- 格式化字符串。
格式化符号:
import time
datetime_format = "%Y-%m-%d %H:%M:%S"
datetime_str = "2024-08-07 15:23:10"
struct_datetime = time.strptime(datetime_str, datetime_format)
print(struct_datetime)
# 输出:
time.struct_time(tm_year=2024, tm_mon=8, tm_mday=7, tm_hour=15, tm_min=23, tm_sec=10, tm_wday=2, tm_yday=220, tm_isdst=-1)
strptime() 方法将日期和时间的字符串表示形式解析时间元组,为我们在 Python 中操作时间提供了方便。在使用该方法时需要注意输入的字符串和格式描述符是否匹配,否则会抛出异常。