如何将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.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模块将日期时间转换为Python中的UTC时间戳。如果您已经拥有UTC中的datetime对象,则可以使用timestamp()获取UTC时间戳。此函数返回该datetime对象的纪元时间。如果您有本地时区中的datetime对象,请先替换时区信息,然后再获取时间。
示例
以下是用例代码,用于将日期时间转换为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时间戳
在这种情况下,我们将以字符串格式表示的日期时间转换为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