如何将 Python 日期转换为 Unix 时间戳?
在 Python 中,日期和时间都是用 datetime
模块来表示。Unix 时间戳是指从 1970 年 1 月 1 日 00:00:00 UTC (协调世界时) 到指定时间所经过的秒数,因此将 Python 的日期转换为 Unix 时间戳是很有必要的。
阅读更多:Python 教程
时间戳(timestamp)的概念
时间戳是指格林威治时间 1970 年 1 月 1 日 00:00:00 到目标时间所经过的秒数。例如:获取当前时间的时间戳:
import time
timestamp = int(time.time())
print(timestamp)
输出:
1635480821
Python 的日期类型
在 Python 中,日期和时间都用 datetime.datetime
类型来表示。下面是 datetime.datetime
类型的几个参数:
- year – 年份,例如:
2021
- month – 月份,取值范围为 1 到 12
- day – 日份,取值范围为 1 到 31
- hour – 小时,取值范围为 0 到 23
- minute – 分钟,取值范围为 0 到 59
- second – 秒钟,取值范围为 0 到 59
- microsecond – 微妙,取值范围为 0 到 999999
例如,生成一个指定日期的 datetime.datetime
对象:
import datetime
date = datetime.datetime(2022, 1, 1, 0, 0, 0)
print(date)
输出:
2022-01-01 00:00:00
将日期转换为 Unix 时间戳
datetime
模块的 strftime
函数可以将日期转换为字符串。如果需要将日期转换为 Unix 时间戳,可以通过以下步骤进行:
- 使用
strftime
函数将日期转换成字符串,格式为%s
。 - 将字符串转换成
float
类型。 - 将
float
类型转换成int
类型。
例如,将一个指定日期转换为 Unix 时间戳:
import datetime
date = datetime.datetime(2022, 1, 1, 0, 0, 0)
timestamp = int(datetime.datetime.strftime(date, "%s"))
print(timestamp)
输出:
1640995200
将 Unix 时间戳转换为日期
与将日期转换为 Unix 时间戳类似,可以通过以下步骤将 Unix 时间戳转换为日期:
- 将 Unix 时间戳转换成
float
类型。 - 使用
datetime.datetime.fromtimestamp
函数将float
类型的 Unix 时间戳转换成datetime.datetime
类型的日期。
例如,将一个 Unix 时间戳转换为日期:
import datetime
timestamp = 1640995200
date = datetime.datetime.fromtimestamp(timestamp)
print(date)
输出:
2022-01-01 08:00:00
需要注意的是,Unix 时间戳表示的是 UTC 时间,因此需要根据时区进行转换。
结论
Python 中的 datetime
模块提供了十分方便的日期和时间处理方法。通过 strftime
函数,我们可以将日期转换为字符串;通过 fromtimestamp
函数,我们可以将 Unix 时间戳转换为日期。对于需要频繁进行日期处理的 Python 程序,掌握这些方法可以更高效地完成开发工作。