如何将Python日期转换为Unix时间戳?
UNIX时间戳是从纪元开始计算的总秒数。纪元是时间的起点,具体取决于平台。对于Windows和大多数Unix系统来说,纪元是1970年1月1日00:00:00(UTC),并且不包括闰秒在内的秒数表示从纪元开始的时间。
在这篇文章中,我们将看到如何将Python日期转换为UNIX时间戳。
日期时间转换为UNIX时间戳
我们通过使用time.mktime()方法将Python日期转换为UNIX时间戳。在这个例子中,我们首先导入了datetime模块。然后我们声明并赋值一个datetime.time/date对象(2022年6月3日12点0分50秒)。time.mktime()是本地时间的反函数。time模块的time.mktime()方法接受一个time.struct_time对象或一个包含9个元素的元组,并返回一个表示自纪元以来经过的时间(以秒为单位)的浮点数值。
语法
mktime()方法的语法如下所示。
time.mktime(t)
其中,t是一个time.struct_time对象或包含9个元素的元组,它对应于一个time.struct_time对象。
datetime.date实例的timetuple()方法返回一个time.struct_time类型的对象。通过使用time.mktime()方法将此对象转换为UNIX时间戳。
示例
以下是一个将python日期转换为UNIX时间戳的示例代码。
import datetime
import time
date_time = datetime.datetime(2022, 6, 3, 12, 0, 50)
print("Given Date:",date_time)
print("UNIX timestamp:",
(time.mktime(date_time.timetuple())))
输出
上述代码的输出如下:
Given Date: 2022-06-03 12:00:50
UNIX timestamp: 1654257650.0
在UTC时区下将日期时间转换为UNIX时间戳
在这里,我们可以使用 datetime 模块将一个日期时间转换为UTC时间戳。
如果你已经有了一个UTC日期时间对象,你可以使用 timestamp() 方法来得到一个UTC时间戳。该方法返回该日期时间对象距离纪元的时间。如果你有一个本地时区的日期时间对象,请先替换时区信息,然后获取时间。
示例
以下是一个将日期时间转换为UNIX时间戳的示例代码。
import datetime
from datetime import timezone
dt = datetime.datetime(2022, 6, 7)
timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
print("The timestamp for the date 06-07-2022 is:",timestamp)
输出
The timestamp for the date 06-07-2022 is: 1654560000.0
时间字符串转换为UNIX时间戳
在这个例子中,我们将一个以字符串格式表示的datetime转换为UNIX时间戳。
示例
import datetime
given_date = "8/6/2022, 05:54:8"
formated_date = datetime.datetime.strptime(given_date,"%m/%d/%Y, %H:%M:%S")
Unix_timestamp = datetime.datetime.timestamp(formated_date)
print("The Unix timestamp for the given input date is:")
print(Unix_timestamp)
输出结果
The Unix timestamp for the given input date is:
1659765248.0