如何将 Python 日期转换为 Unix 时间戳?
UNIX 时间戳是从纪元开始计算的总秒数。纪元是时间的起始点,而且取决于平台。Windows 和大多数 Unix 系统的纪元是 1970 年 1 月 1 日,00:00:00(UTC),并且不包括闰秒在纪元后的秒数中。
本文将介绍如何将 Python 日期转换为 UNIX 时间戳。
阅读更多:Python 教程
日期时间转化为 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("给定日期:",date_time)
print("Unix 时间戳:",
(time.mktime(date_time.timetuple())))
输出
以上代码的输出如下:
给定日期: 2022-06-03 12:00:50
Unix 时间戳: 1654257650.0
时区为 UTC 的日期时间转化为 UNIX 时间戳
在这里,我们可以使用 datetime 模块将时间日期转换为 Python 中的 UTC 时间戳。如果您已经有了 UTC 的 datetime 对象,可以使用 timestamp() 转换为 UTC 时间戳。此函数返回该 datetime 对象的纪元以来的时间。如果您有在本地时区的 datetime 对象,请先替换时区信息,然后获取时间。
实例
以下是将 datetime 转换为 Unix 时间戳的示例代码。
import datetime
from datetime import timezone
dt = datetime.datetime(2022, 6, 7)timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
print("日期 06-07-2022 的时间戳为:",timestamp)
输出
日期 06-07-2022 的时间戳为: 1654560000.0
日期时间字符串转化为 UNIX 时间戳
在这种情况下,将以字符串格式表示的日期时间转换为 UNIX 时间戳。
实例
import datetime
given_date = "2022/8/6, 05:54:8"
formated_date = datetime.datetime.strptime(given_date,"%Y/%m/%d, %H:%M:%S")
Unix_timestamp = datetime.datetime.timestamp(formated_date)
print("给定输入日期的Unix时间戳是:")
print(Unix_timestamp)
输出
给定输入日期的Unix时间戳是:
1659765248.0