Python time和datetime时间戳和时间字符串相互转换
发布日期:2021-05-12 20:11:39 浏览次数:20 分类:精选文章

本文共 2484 字,大约阅读时间需要 8 分钟。

Python time和datetime时间戳和时间字符串的转换指南

时间戳是指格林威治时间1970年01月01日00时00分00秒开始计算所经过的秒数,是一个浮点数。Python中的time和datetime模块提供了强大的工具来处理时间戳和时间字符串的转换,同时满足不同的开发需求。


一、time模块获取当前时间

使用time模块可以轻松获取当前时间的时间戳和struct_time信息。

import time
print(time.time()) # 输出当前时间戳(浮点数)
print(time.localtime()) # 获取当前时间的struct_time结构元组
print(time.localtime(time.time())) # 根据time.time()获取当前时间的struct_time结构元组

运行结果:

1559120608.5015295
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.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 datetime
print(datetime.now()) # 获取当前时间的datetime对象
print(datetime.now().timetuple()) # 获取当前时间的struct_time结构元组

运行结果:

2019-05-29 17:22:37.343784
time.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:37
155559121757.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

结语

在实际工作中,可以根据实际需求灵活选择timedatetime模块中的功能。两者旨在解决不同类型的时间处理问题:time模块更注重时间戳的精度和快速获取,而datetime模块则更适合处理日期和时间的格式化和解析。无论是单独使用还是结合使用,这两个模块都能为Python开发者提供强大的时间处理能力。

上一篇:Python 正则表达式re模块的使用
下一篇:Python使用pyzabbix调用Zabbix API

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月23日 04时30分06秒