Python3日期与时间戳转换的几种方法

17,534 阅读1分钟

概述

日期和时间的相互转换可以利用Python内置模块timedatetime完成,且有多种方法供我们选择,当然转换时我们可以直接利用当前时间或指定的字符串格式的时间格式。

获取当前时间转换

我们可以利用内置模块datetime获取当前时间,然后将其转换为对应的时间戳。

import datetime
import time
# 获取当前时间
dtime = datetime.datetime.now()
un_time = time.mktime(dtime.timetuple())
print(un_time)
# 将unix时间戳转换为“当前时间”格式
times = datetime.datetime.fromtimestamp(un_time)
print(times)

转换结果:

1559568302.0
2019-06-03 21:25:02

字符串时间的转换

当然我们也可以直接将字符串类型的时间对应的时间戳。

import datetime
import time

# 字符类型的时间
tss1 = '2019-06-03 21:19:03'
# 转为时间数组
timeArray = time.strptime(tss1, "%Y-%m-%d %H:%M:%S")
print(timeArray)
# timeArray可以调用tm_year等
print(timeArray.tm_year)  # 2019
# 转为时间戳
timeStamp = int(time.mktime(timeArray))
print(timeStamp)  # 1559567943

示例结果:

time.struct_time(tm_year=2019, tm_mon=6, tm_mday=3, tm_hour=21, tm_min=19, tm_sec=3, tm_wday=0, tm_yday=154, tm_isdst=-1)
2019
1559567943

时间戳转日期的其他方法

localtime

我们可以利用localtime()转换为时间数组,然后格式化为需要的格式

import time
timeStamp = 1559567943
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(otherStyleTime)

示例结果:

2019-06-03 21:19:03

utcfromtimestamp

import time
import datetime
timeStamp = 1559567943
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(otherStyleTime)