本文最后更新于:2024年1月14日 晚上

本文记录 Python time 模块时间与秒数转换的方法。

转换方法

  • 加载 time 模块
1
import time
  • 获取当前秒数
1
current = time.time()

current = 1636181668.299232

  • 秒数为正经的 float
1
type(time.time())

<class ‘float’>

  • 秒数转换为时间字符串
1
2
3
4
lt = time.localtime(current)
print(lt)
to_time = time.strftime("%Y-%m-%d %H:%M:%S", lt)
print(to_time)

time.struct_time(tm_year=2021, tm_mon=11, tm_mday=6, tm_hour=14, tm_min=54, tm_sec=28, tm_wday=5, tm_yday=310, tm_isdst=0)

2021-11-06 14:54:28

  • 时间字符串转 datetime 对象,根据实际情况选择解析格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import datetime
import time

# 字符串转日期

datestr = '2019-05-01'
date = datetime.datetime.strptime(datestr, '%Y-%m-%d')
print(date)
->
2019-05-01 00:00:00

datestr = '2023-01-19 14:01'
date_time_obj = datetime.datetime.strptime(datestr, '%Y-%m-%d %H:%M')
print(date_time_obj)
->
2023-01-19 14:01:00

datestr = '2023-01-19 14:01:26'
date_time_obj = datetime.datetime.strptime(datestr, '%Y-%m-%d %H:%M:%S')
print(date_time_obj)
->
2023-01-19 14:01:26
  • 使用时间创建时间对象(使用上述 current 时刻的时间)
1
2
import datetime
dt = datetime.datetime(2021, 11, 6, 14, 54, 28)

dt = datetime.datetime(2021, 11, 6, 14, 54, 28)

  • 将时间对象转换为秒数
1
2
# 需要先转换为 struct_time
tt = dt.timetuple()

tt = time.struct_time(tm_year=2021, tm_mon=11, tm_mday=6, tm_hour=14, tm_min=54, tm_sec=28, tm_wday=5, tm_yday=310, tm_isdst=-1)

1
2
# 将 struct_time 转为秒数
seconds = time.mktime(tt)

seconds = 1636181668.0

该结果与最初 time.time() 得到的结果一致(略去小数部分),表明时间转换成功

参考资料



文章链接:
https://www.zywvvd.com/notes/coding/python/python-time-transfer/python-time-transfer/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

Python time 模块时间与秒数相互转换
https://www.zywvvd.com/notes/coding/python/python-time-transfer/python-time-transfer/
作者
Yiwei Zhang
发布于
2021年11月6日
许可协议