Python时间处理详解:time模块的格式读取与转换实战
本文深入解析Python中time模块的时间处理机制,涵盖浮点数、标准可读、格式化及自定义四种时间表示格式。详细演示time.time()、localtime()、ctime()、strftime()等核心函数的用法,实现时间戳与字符串间的相互转换,并简要对比datetime模块,帮助开发者掌握高效的时间处理技巧。
借助Python内置的time模块,开发者能够便捷地获取、查看及处理各类时间与日期相关数据。
一、时间的表示格式
在Python编程实践中,主要有四种常用的时间表示形式,分别为浮点数格式、标准可读格式、格式化格式以及自定义格式(此处命名仅为便于区分,非官方标准术语)。
(1)浮点数格式
该格式采用float类型的浮点数来表征时间,其具体数值代表从世界标准纪元时间(即1970年1月1日00:00:00)起至当前时刻所经过的秒数。
(2)标准可读格式
其表现形式为“星期几 月份 日期 时:分:秒 年份”,这种格式设计旨在方便人类直接阅读和理解。
(3)格式化格式(time.struct_time)
此格式通过多个独立参数分别存储年份、月份、日期、时分秒等详细信息,这种结构更便于计算机程序进行后续处理与计算。
(4)自定义格式
用户可根据具体业务需求,将时间与日期信息整理为符合个人习惯的自定义字符串格式。
# 浮点数格式 <class 'float'> 1667321639.1330378 # 标准可读格式 <class 'str'> Wed Nov 2 00:53:59 2022 # 格式化格式 <class 'time.struct_time'> time.struct_time(tm_year=2022, tm_mon=11, tm_mday=2, tm_hour=0, tm_min=53, tm_sec=59, tm_wday=2, tm_yday=306, tm_isdst=0) # 自定义格式 <class 'str'> 2022年11月01日 11:59:59
上述不同格式之间的相互转换关系如下图所示:

二、时间的读取与格式转换
1. 使用time.time()方法读取为浮点数格式
调用time.time()函数可直接获取计算机内部时间,其返回值类型为浮点数格式的时间戳。
import time t1 = time.time() print(t1) Out: 1667322679.7262034
2. 使用time.localtime()和time.gmtime()方法读取为格式化格式
time.localtime()用于获取本地时区的时间,而time.gmtime()用于获取世界协调时间(UTC),两者返回值均为格式化格式(struct_time)。
import time t1 = time.localtime() # 本地时间 t2 = time.gmtime() # 世界时间 print(t1) print(t2) Out: time.struct_time(tm_year=2022, tm_mon=11, tm_mday=2, tm_hour=1, tm_min=12, tm_sec=58, tm_wday=2, tm_yday=306, tm_isdst=0) time.struct_time(tm_year=2022, tm_mon=11, tm_mday=1, tm_hour=17, tm_min=12, tm_sec=58, tm_wday=1, tm_yday=305, tm_isdst=0)
3. 使用time.ctime()和time.asctime()方法读取为标准可读格式
当time.ctime()和time.asctime()函数未传入参数时,它们直接返回当前时间的标准可读格式字符串。
import time t1 = time.ctime() t2 = time.asctime() print(t1) print(t2) Out: Wed Nov 2 01:10:01 2022 Wed Nov 2 01:10:01 2022
若向time.ctime()传入浮点数格式的时间参数,可将其转换为标准可读格式。
若向time.asctime()传入格式化格式(struct_time)的时间参数,可将其转换为标准可读格式。
import time t1 = time.ctime(time.time()) # 将浮点数格式转换为标准可读格式 t2 = time.asctime(time.localtime()) # 将格式化格式转换为标准可读格式 print(t1) print(t2) Out: Wed Nov 2 01:01:41 2022 Wed Nov 2 01:01:41 2022
4. 使用time.strftime()和time.strptime()完成与自定义格式的互转
time.strftime()函数负责将格式化格式(struct_time)转换为指定的自定义字符串格式。
import time
t1 = time.localtime() # 格式化格式
s1 = time.strftime("%Y-%m-%d %H:%M:%S", t1)
print(s1)
Out:
2022-11-02 01:21:28 # 自定义格式time.strptime()函数的功能与time.strftime()相反,它负责将自定义格式的字符串解析并转换为格式化格式(struct_time)。
import time s1 = "2022年11月01日 11:59:59" # 自定义格式 t1 = time.strptime(s1, "%Y年%m月%d日 %H:%M:%S") print(t1) Out: time.struct_time(tm_year=2022, tm_mon=11, tm_mday=1, tm_hour=11, tm_min=59, tm_sec=59, tm_wday=1, tm_yday=305, tm_isdst=-1)
补充:python的时间获取与转化:time模块和datetime模块
1.三种时间:UTC time,local time,epoch time 2.三种时间表示:timestamp,struct_time,format time
3.time.time()返回时间戳;time.localtime()返回时间元组;time.strftime('%Y-%m-%d' , time.localtime())返回格式化时间 time.strptime('2018年12月08日 34时10分04秒' , '%Y年%m月%d日 %M时%I分%S秒') 解析字符串返回时间元组
4.datetime模块是对time的进一步封装,主要是5个类:date,time,datetime,timedelta,tzinfo。
5.date.today(),date.fromtimestamp(timestamp),d.weekday(),d.strftime(format) 6.datetime.today(),datetime.now([tz]) 7.timedelta内部值存储days,seconds,microseconds.其他所有值都被转为这三个参数。 8.td.days(),td.seconds()

到此这篇关于Python中的时间格式的读取与转换(time模块)的文章就介绍到这了,更多相关Python时间格式内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













