Python time 模块时间与秒数相互转换

本文最后更新于:2021年11月16日 下午

本文记录 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

  • 使用时间创建时间对象(使用上述 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() 得到的结果一致(略去小数部分),表明时间转换成功

参考资料