Python time模块:时间戳、格式化字符串与struct_time元组详解

季宁
季宁
发布时间:2026-10-14 | 3人浏览过
原创

本文介绍Python中time模块的三种主要时间表示方式:时间戳、格式化字符串及struct_time元组。详细解析了time模块在不同平台下的实现差异,并深入讲解UTC时间与夏令时概念。通过具体代码示例,展示time.time、localtime、gmtime等核心函数的用法及时间格式转换技巧。

Python中时间的三种主要表示方式

在Python编程中,处理时间数据时通常涉及以下几种主要表示形式:

  • 首先是时间戳(timestamp),它定义为自1970年1月1日00:00:00(Unix纪元)起所经过的秒数偏移量。例如,数值1554864776.161901即代表某一特定时刻的时间戳。
  • 其次是格式化的时间字符串,这种形式更便于人类阅读,常见的格式示例如“2020-10-03 17:54”。
  • 第三种方式是元组(struct_time),该结构包含九个特定的时间属性元素。

time模块的平台差异与struct_time详解

需要注意的是,Python的time模块底层主要调用C语言标准库,因此其具体行为在不同操作系统平台上可能存在细微差异。

以macOS系统为例,time.struct_time对象的具体表现可能如下:time.struct_time(tm_year=2020, tm_mon=4, tm_mday=10, tm_hour=2, tm_min=53, tm_sec=15, tm_wday=2, tm_yday=100, tm_isdst=0)。其中各属性对应具体的时间分量,如所示。


索引(Index)  属性(Attribute)  值(Values)
0   tm_year(年)         比如2011
1   tm_mon(月)         1 - 12
2   tm_mday(日)         1 - 31
3   tm_hour(时)         0 - 23
4   tm_min(分)         0 - 59
5   tm_sec(秒)         0 - 61
6   tm_wday(weekday)      0 - 6(0表示周日)
7   tm_yday(一年中的第几天)    1 - 366
8   tm_isdst(是否是夏令时)    默认为-1

UTC时间与夏令时概念解析

接下来讨论UTC时间,即协调世界时。

UTC(Coordinated Universal Time,世界协调时)也被视为格林威治天文时间或世界标准时间。对于中国用户而言,本地时间通常处于UTC+8时区,即东八区。此外,还需注意DST(Daylight Saving Time,夏令时)的影响,这会导致部分地区的时钟在夏季向前调整一小时。


import time

print(time.time())
print(time.localtime())

print(time.gmtime())  # 格林威治时间, 北京时间减8小时;

t1 =time.gmtime()
print(time.mktime(t1))  # 转换成时间戳
# time.sleep(3)  # 程序休眠 单位秒
print('---------')
print(time.asctime())
#把一个表示时间的元组或者struct_time表示为这种形式:'Sun Oct 1 12:04:38 2019'。如果没有参数,将会将time.localtime()作为参数传入。
print(time.ctime(1234567))
# 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
print(time.strftime("%Y.%m-%d %H:%M",time.localtime()))

import time

print(time.time())
print(time.localtime())

print(time.gmtime())  # 格林威治时间, 北京时间减8小时;

t1 =time.gmtime()
print(time.mktime(t1))  # 转换成时间戳

# time.sleep(3)  # 程序休眠 单位秒
print('---------')

print(time.asctime())
#把一个表示时间的元组或者struct_time表示为这种形式:'Sun Oct 1 12:04:38 2019'。如果没有参数,将会将time.localtime()作为参数传入。

print(time.ctime(1234567))
# 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。

print(time.strftime("%Y.%m-%d %H:%M %p %j %z",time.localtime()))

print(time.strptime("2020/04/01 19:30","%Y/%m/%d %H:%M"))

-----------------------------------------------------------------------------------------------

D:\develop_study\python\Python38-32\python.exe D:/code_file/first_web/python进阶/time.py
1587612659.019533
time.struct_time(tm_year=2020, tm_mon=4, tm_mday=23, tm_hour=11, tm_min=30, tm_sec=59, tm_wday=3, tm_yday=114, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=4, tm_mday=23, tm_hour=3, tm_min=30, tm_sec=59, tm_wday=3, tm_yday=114, tm_isdst=0)
1587583859.0
---------
Thu Apr 23 11:30:59 2020
Thu Jan 15 14:56:07 1970
2020.04-23 11:30 AM 114 +0800
time.struct_time(tm_year=2020, tm_mon=4, tm_mday=1, tm_hour=19, tm_min=30, tm_sec=0, tm_wday=2, tm_yday=92, tm_isdst=-1)

Process finished with exit code 0

以上内容涵盖了Python time模块中关于时间表示的核心概念与常用方法,希望能为读者提供有效的参考与帮助。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表