Python Datetime.timestamp()方法

Pythondatetime.timestamp() 方法是一种将DateTime对象转换为时间戳实例的有效方法。一个时间戳是代表一个特定事件发生的日期和时间的编码信息。

Pythondatetime.timestamp() 方法的语法

datetime.timestamp(datetime_object)

参数

datetime_object 一个需要被转换为时间戳实例的日期和时间对象。

返回值

该方法的返回类型是一个代表DateTime对象的浮点整数。

示例代码:使用datetime.timestamp() 方法工作

from datetime import datetime
datetime_object = datetime.now()
timestamp = datetime.timestamp(datetime_object)
print("Current time is ", datetime_object)
print("The current time in timestamp format is ", timestamp)

输出:

Current time is  2022-09-01 05:30:24.231005
The current time in timestamp format is  1662010224.231005

注意,上面的时间戳代表了当前时间与1970年1月1日UTC时间之间的秒数。

示例代码:在datetime.timestamp() 方法中输入不同的日期时间对象

from datetime import datetime
past_date = "23.02.0001 09:12:00"
datetime_object = datetime.strptime(past_date, '%d.%m.%Y %H:%M:%S')
timestamp = datetime_object.timestamp()
print(timestamp)
future_date = "23.02.9989 09:12:00"
datetime_object = datetime.strptime(future_date, '%d.%m.%Y %H:%M:%S')
timestamp = datetime_object.timestamp()
print(timestamp)

输出:

-62130984480.0
253059844320.0

在许多平台上,上述代码可能会对过去或未来的时间产生OverflowErrorOSError 异常。

示例代码:使用datetime.timestamp() 方法从不同的时区获取时间戳

from datetime import datetime
import pytz
datetime_object = datetime.now()
timezone = pytz.timezone("Asia/Tokyo")
dtzone = timezone.localize(datetime_object)
print("The time Zone is ", dtzone.tzinfo)
print("Datetime: ", dtzone)
timestamp = dtzone.timestamp()
print("The timestamp in the current timezone is ", datetime_object.timestamp())
print("The timestamp in a different timezone is ", timestamp)

输出:

The time Zone is  Asia/Tokyo
Datetime:  2022-09-01 05:54:25.952874+09:00
The timestamp in the current timezone is  1662011665.952874
The timestamp in a different timezone is  1661979265.952874

上面的代码可以很容易地从任何时区获得时间戳。