Python 将日期时间转换为纪元

Vaibhhav Khetarpal 2023年1月30日
  1. 在 Python 中使用显式方法将日期时间转换为纪元
  2. 在 Python 中使用 timestamp() 函数将日期时间转换为纪元
  3. 在 Python 中使用 strftime(format) 函数将日期时间转换为纪元
  4. 在 Python 中使用 timegm 函数将 DateTime 转换为纪元
Python 将日期时间转换为纪元

datetime 库可以导入到 Python 程序中。它在 Python 代码中提供了用于处理日期和时间的类。

epoch 是测量经过时间的起点,其值通常会有所不同,并取决于所使用的平台。

本教程将讨论在 Python 中将日期时间转换为纪元的不同方法。

在 Python 中使用显式方法将日期时间转换为纪元

在这种方法中,我们采用当前日期,并从开始日期中手动减去当前日期,然后使用 total_seconds() 函数并显示以秒为单位进行转换。

此处的初始日期是 1970/1/1。

下面的代码在 Python 中使用显式方法将日期时间转换为纪元。

import datetime

ts = (
    datetime.datetime(2019, 12, 1, 0, 0) - datetime.datetime(1970, 1, 1)
).total_seconds()
print(ts)

输出:

1575158400.0

在 Python 中使用 timestamp() 函数将日期时间转换为纪元

时间戳是一系列字符,指示特定事件何时发生的值。

Python 提供了 timestamp() 函数,该函数可用于获取自 epoch 以来的 datetime 时间戳。

以下代码使用 timestamp() 函数在 Python 中将日期时间转换为纪元。

import datetime

ts = datetime.datetime(2019, 12, 1, 0, 0).timestamp()
print(ts)

输出:

1575158400.0

这是一种相当简单的方法,可为我们提供准确的输出。

请注意,timestamp() 函数仅适用于 Python 3.3+,不适用于旧版本的 Python。

在 Python 中使用 strftime(format) 函数将日期时间转换为纪元

strftime(format) 方法用于根据用户指定的格式将对象转换为字符串。

对于此过程的相反过程,使用了 strptime() 方法。

以下代码使用 strftime(format) 方法在 Python 中将日期时间转换为纪元。

import datetime

ts = datetime.datetime(2019, 12, 1, 0, 0).strftime("%s")
print(ts)

输出:

1575158400

strftime(format) 可能并不总是提供正确的解决方案。此方法使用%s 指令作为 strftime 的参数,而 Python 实际上并不支持该参数。之所以可行,是因为 Python 将%s 转发到系统的 strftime 方法。

此方法不是将日期时间转换为纪元的最准确方法。不建议仅因为有更好,更准确的方法而使用此方法。

在 Python 中使用 timegm 函数将 DateTime 转换为纪元

timegm() 函数采用一个特定的时间值,并返回其相应的 Unix 时间戳值。纪元取为 1970,并假定为 POSIX 编码。time.gmtime()timegm() 函数彼此相反。

calendartime 库都需要被导入 Python 程序以使用这些函数。

calendar 模块使我们能够输出日历以及与此相关的一些其他有用功能。

以下代码使用 timegm() 函数将日期时间转换为纪元。

import datetime
import calendar

d = datetime.datetime(2019, 12, 1, 0, 0)
print(calendar.timegm(d.timetuple()))

输出:

1575158400
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相关文章 - Python DateTime