📅  最后修改于: 2023-12-03 15:26:18.469000             🧑  作者: Mango
Python 提供了一组强大的模块和方法来处理日期和时间。它们中的大多数都在 datetime
模块中实现。在这篇文章中,我们将探讨如何在 Python 中将日期和时间转换为纪元(Unix 时间戳),以及如何在它们之间进行转换。
纪元或 Unix 时间戳是一种表示日期和时间的方式,通常使用整数值表示自协调世界时 (UTC) 1970年1月1日(也称为 Unix 纪元或 Epoch)自午夜以来的秒数。因此,Unix 时间戳表示自 1970 年1月1日 00:00:00 UTC 起至今的秒数。
要将日期时间转换为 Unix 时间戳,我们可以使用 datetime
模块中的 datetime
类和 timestamp()
方法。以下是一个示例:
import datetime
date_time = datetime.datetime(2021, 1, 1, 0, 0, 0) # 2021 年 1 月 1 日 00:00:00
unix_timestamp = date_time.timestamp()
print(unix_timestamp) # 输出:1609459200.0
首先,我们创建一个 datetime
对象,表示 2021 年 1 月 1 日 00:00:00。然后,我们调用 timestamp()
方法将其转换为 Unix 时间戳。最后,我们打印出 Unix 时间戳。
要将 Unix 时间戳转换回日期时间,我们可以使用 datetime
模块中的 fromtimestamp()
方法。以下是一个示例:
import datetime
unix_timestamp = 1609459200.0 # Unix 时间戳,表示 2021 年 1 月 1 日 00:00:00
date_time = datetime.datetime.fromtimestamp(unix_timestamp)
print(date_time) # 输出:2021-01-01 00:00:00
首先,我们创建一个 Unix 时间戳,表示 2021 年 1 月 1 日 00:00:00。然后,我们调用 fromtimestamp()
方法将其转换为 datetime
对象。最后,我们打印出 datetime
对象。
有时候,我们需要将 UTC 时间转换为本地时间。要做到这一点,我们可以使用 pytz
模块。以下是一个示例:
import datetime
import pytz
# 创建一个 UTC 时间
utc_time = datetime.datetime(2021, 1, 1, 0, 0, 0, tzinfo=pytz.utc)
# 将 UTC 时间转换为纽约本地时间
ny_time = utc_time.astimezone(pytz.timezone('America/New_York'))
print(utc_time) # 输出:2021-01-01 00:00:00+00:00
print(ny_time) # 输出:2020-12-31 19:00:00-05:00
首先,我们创建一个 datetime
对象,表示 2021 年 1 月 1 日 00:00:00 的 UTC 时间。我们使用 pytz.utc
指定它为 UTC 时间。然后,我们将其转换为纽约的本地时间,使用 astimezone()
方法和 pytz.timezone()
方法指定所需的时区。
Python 中的 datetime
模块提供了很多功能,用于处理日期和时间。在本文中,我们学习了如何将日期时间转换为 Unix 时间戳,然后再将其转换回日期时间。我们还学习了如何将 UTC 时间转换为本地时间。这些知识对于开发日期和时间相关的应用程序非常重要。