当前位置:首页 > 编程知识 > 正文

Python float转换为日期

本文将从以下几个方面详细介绍如何将Python float类型转换为日期:

一、float转datetime

import datetime
timeStamp = 1545925769.963961
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
print(dateArray)

在上面的代码中,我们首先导入datetime模块,然后定义了一个时间戳timeStamp。接下来,我们使用datetime.datetime.utcfromtimestamp将时间戳转换为datetime类型,并将其存储在dateArray变量中。最后使用print()方法输出dateArray的值。

这个代码的输出结果为:

2018-12-27 02:02:49.963961

我们可以看到,将float类型转换为datetime类型很容易,只需要使用datetime.datetime.utcfromtimestamp()方法即可。

二、float转字符串格式日期

import time
timeStamp = 1545925769.963961
dateArray = time.localtime(timeStamp)
strDate = time.strftime("%Y-%m-%d %H:%M:%S", dateArray)
print(strDate)

在上面的代码中,我们首先导入了time模块,然后定义了一个时间戳timeStamp。接下来,我们使用time.localtime()方法将时间戳转换为日期元组类型,并将其存储在dateArray变量中。然后,我们使用time.strftime()方法将dateArray转换为字符串格式日期,并将其存储在strDate变量中。最后使用print()方法输出strDate的值。

这个代码的输出结果为:

2018-12-27 10:02:49

我们可以看到,将float类型转换为字符串格式日期也很容易,只需要使用time模块的localtime()和strftime()方法即可。

三、float转Unix时间戳

import datetime
datetime_obj = datetime.datetime.now()
epoch = datetime.datetime.utcfromtimestamp(0)
total_seconds = (datetime_obj - epoch).total_seconds()
print(total_seconds)

在上面的代码中,我们首先使用datetime模块获取当前日期时间,若在Python3直接使用datetime.now()即可,而在Python2.x中有的解析器没有datetime.now() 的方法,需要先将其强制转化为datetime.datetime类型,如:datetime.datetime.now(),然后定义epoch为时间戳0时刻的datetime类型。接下来,我们使用datetime.timedelta()方法计算当前日期与时间戳0时刻的时间差,并将其转换为秒数存储在total_seconds变量中。最后使用print()方法输出total_seconds的值。

这个代码的输出结果为:

1559671329.852059

我们可以看到,将float类型转换为Unix时间戳也很容易,只需要使用datetime模块的timedelta()方法即可。

四、时间戳进行格式转换

import datetime
timestamp = 1559671329.852059
local_dt = datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
print(local_dt)

在这个代码中,我们定义了一个时间戳,并使用datetime.datetime.fromtimestamp()方法将其转换为当地标准时间。接下来,我们使用strftime()方法将local_dt格式化为'%Y-%m-%d %H:%M:%S'形式的字符串,并输出结果。

这个代码的输出结果为:

2019-06-05 20:15:29

我们可以看到,使用strftime()方法可以将日期时间格式化为我们需要的形式。