Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python 时间戳与日期时间相互转换

Python 笔记 Python 笔记


Python 开发实践中,经常需要将时间戳与指定的日期时间进行相互转换,Python 中处理时间的模块主要为 time 和 datetime 模块。

日期时间转换时间戳

将指定的时间格式(如 2019-06-05 20:48:37)转换成时间戳,具体的操作过程为:

  • 首先利用 time 模块的 strptime() 函数将指定时间格式转换成时间元组(返回 struct_time 对象)。
  • 再利用 time 模块的 mktime() 函数将时间元组转换成时间戳(返回 float 类型,精确到秒)。

代码示例如下:

import time

dt = "2019-06-05 20:48:37"
# dt = "2019/06/05 20:48:37"

# 转换成时间元组
time_tuple = time.strptime(dt, "%Y-%m-%d %H:%M:%S")
# time_tuple = time.strptime(dt, "%Y/%m/%d %H:%M:%S")
print(type(time_tuple))
print(time_tuple)

# 转换成时间戳
timestamp = time.mktime(time_tuple)
print(type(timestamp))
print(timestamp)
print(int(timestamp))
<class 'time.struct_time'>
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=5, tm_hour=20, tm_min=48, tm_sec=37, tm_wday=2, tm_yday=156, tm_isdst=-1)
<class 'float'>
1559738917.0
1559738917

时间戳转换指定格式的日期时间

在时间戳转换成指定格式的日期时间中,首先需要将时间戳转换成 struct_time 时间元组对象,再转换成时间的具体格式:

  • 利用 time 模块的 localtime() 函数将时间戳转换成时间元组(返回 struct_time 对象)。
  • 利用 time 模块的 strftime() 函数将时间元组转换成指定格式的日期时间。

代码示例如下:

import time

timestamp = 1559738917

# 转换成时间元组
time_tuple = time.localtime(timestamp)
print(type(time_tuple))
print(time_tuple)

# 转换成指定的时间格式
dt = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print(type(dt))
print(dt)
<class 'time.struct_time'>
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=5, tm_hour=20, tm_min=48, tm_sec=37, tm_wday=2, tm_yday=156, tm_isdst=0)
<class 'str'>
2019-06-05 20:48:37