模块time包含用于获取当前时间、操作时间和日期、从字符串中读取日期、将日期格式化为字符串的函数。日期可表示为实数(从“新纪元”1月1日0时起过去的秒数。“新纪元”是一个随平台而异的年份,在UNIX中为1970年),也可表示为包含9个整数的元组。
元组(2008, 1, 21, 12, 2, 56, 0, 21, 0)表示2008年1月21日12时2分56秒。这一天是星期一,2008年的第21天(不考虑夏令时)。
python 日期元组中的字段
索引 | 字段 | 值 |
---|---|---|
0 | 年 | 年份 |
1 | 月 | 月份 |
2 | 日 | 日期 |
3 | 时 | 0-23 |
4 | 分 | 范围0-59 |
5 | 秒 | 范围0-61 |
6 | 星期 | 范围0-6,0表示星期一 |
7 | 儒略日 | 范围1-366 |
8 | 夏令时 | 0、1或-1 |
秒的取值范围为0-61,这考虑到闰一秒和闰两秒的情况。
time模块常用函数
函数 | 描述 |
---|---|
asctime([tuple]) | 将时间元组转换为字符串 |
localtime([secs]) | 将秒数转换为表示当地时间的日期元组 |
mktime(tuple) | 将时间元组转换为当地时间 |
sleep(secs) | 休眠(什么都不做)secs秒 |
strptime(string[, format]) | 将字符串转换为时间元组 |
time() | 当前时间(从新纪元开始后的秒数,以UTC为准) |
# 将当前本地时间转化为字符串
time.asctime()
Out[2]: 'Sun Jan 14 19:36:17 2024'
# 将实数转化为日期元组(本地时间),如要转化为国际标准时间,用gmtime。
time.localtime()
Out[3]: time.struct_time(tm_year=2024, tm_mon=1, tm_mday=14, tm_hour=19, tm_min=38, tm_sec=48, tm_wday=6, tm_yday=14, tm_isdst=0)
time.gmtime()
Out[4]: time.struct_time(tm_year=2024, tm_mon=1, tm_mday=14, tm_hour=11, tm_min=42, tm_sec=10, tm_wday=6, tm_yday=14, tm_isdst=0)
# mktime 将日期元组转化为新纪元后的秒数。与localtime功能相反
localT = time.localtime()
time.mktime(localT)
Out[9]: 1705232649.0
# 函数strptime将字符串(其格式与asctime返回的字符串格式相同)转化为日期元组。
time.strptime(time.asctime())
Out[10]: time.struct_time(tm_year=2024, tm_mon=1, tm_mday=14, tm_hour=19, tm_min=49, tm_sec=31, tm_wday=6, tm_yday=14, tm_isdst=-1)
# time 函数返回当前的国际标准时间的秒数表示。
time.time()
Out[11]: 1705233054.4526942
其它时间相关模块
python还有两个较新的与时间相关的模块:datatime和timeit。
前者提供了日期和时间算术支持,而后者可帮助你计算代码段的执行时间。