
本文共 2484 字,大约阅读时间需要 8 分钟。
Python time和datetime时间戳和时间字符串的转换指南
时间戳是指格林威治时间1970年01月01日00时00分00秒开始计算所经过的秒数,是一个浮点数。Python中的time和datetime模块提供了强大的工具来处理时间戳和时间字符串的转换,同时满足不同的开发需求。
一、time模块获取当前时间
使用time模块可以轻松获取当前时间的时间戳和struct_time信息。
import timeprint(time.time()) # 输出当前时间戳(浮点数)print(time.localtime()) # 获取当前时间的struct_time结构元组print(time.localtime(time.time())) # 根据time.time()获取当前时间的struct_time结构元组
运行结果:
1559120608.5015295time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=3, tm_sec=28, tm_wday=2, tm_yday=149, tm_isdst=0)time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=3, tm_sec=28, tm_wday=2, tm_yday=149, tm_isdst=0)
通过time.time()
获取当前的时间,默认是一个时间戳浮点数。而time.localtime()
或time.localtime(time.time())
都能获取当前时间的struct_time
,分别提供了年、月、日、时、分、秒、一周的第几天(周一为0)、一年的第几天(从1开始,1-366)以及是否为夏令时信息。
二、time模块将时间戳转换成时间字符串
时间戳可以通过strftime
方法转换成指定格式的时间字符串。
time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))print(time_str)
运行结果:
2019-05-29 17:08:35
三、time模块将时间字符串转换成时间戳
时间字符串可以通过strptime
方法解析并转换为时间戳。
time_stamp = time.mktime(time.strptime(time_str, '%Y-%m-%d %H:%M:%S'))print(time_stamp)
运行结果:
1559120915.0
四、datetime模块获取当前时间
datetime
模块获取当前时间的方式与time
模块类似,但返回的数据格式更为灵活。
from datetime import datetimeprint(datetime.now()) # 获取当前时间的datetime对象print(datetime.now().timetuple()) # 获取当前时间的struct_time结构元组
运行结果:
2019-05-29 17:22:37.343784time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=22, tm_sec=37, tm_wday=2, tm_yday=149, tm_isdst=-1)
通过datetime.now()
获取当前时间,返回的是一个datetime
时间对象,其格式与时间字符串相似。而timetuple()
方法可以将datetime
对象转换为struct_time
结构元组。
五、datetime模块将datetime对象转换成时间字符串和时间戳
datetime
对象可以直接转换成时间字符串或时间戳。
# 将datetime对象转换成时间字符串datetime_str = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')print(datetime_str)# 将datetime对象转换成时间戳datetime_stamp = datetime.timestamp(datetime.now())print(datetime_stamp)
运行结果:
2019-05-29 17:22:37155559121757.343784
六、datetime模块将时间字符串转换成时间戳
时间字符串可以通过strptime
方法解析并转换为时间戳。
datetime_stamp2 = datetime.timestamp(datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S'))print(datetime_stamp2)
运行结果:
1559121757.0
七、datetime模块将时间戳转换成时间字符串
时间戳可以通过fromtimestamp
方法转换为datetime
对象,再将其格式化为时间字符串。
# 将时间戳转换为datetime对象,再转换成时间字符串datetime_str2 = datetime.strftime(datetime.fromtimestamp(datetime_stamp2), '%Y-%m-%d %H:%M:%S')print(datetime_str2)
运行结果:
2019-05-29 17:22:37
结语
在实际工作中,可以根据实际需求灵活选择time
和datetime
模块中的功能。两者旨在解决不同类型的时间处理问题:time
模块更注重时间戳的精度和快速获取,而datetime
模块则更适合处理日期和时间的格式化和解析。无论是单独使用还是结合使用,这两个模块都能为Python开发者提供强大的时间处理能力。
发表评论
最新留言
关于作者
