📜  Python日期时间到整数时间戳

📅  最后修改于: 2022-05-13 01:55:23.044000             🧑  作者: Mango

Python日期时间到整数时间戳

在本文中,我们将看到如何将Python DateTime 转换为整数时间戳。

timestamp()函数返回表示为自 1970 年 1 月 1 日以来经过的秒数的时间。该零时刻称为纪元。首先,我们将获取当前时间或明确提及我们想要时间戳的所需日期和时间。有多种方法可以获取日期和时间。我们将在浏览示例时看到它们。然后我们将使用 timestamp()函数将日期时间转换为时间戳

最后,我们将以秒和毫秒为单位对时间戳进行四舍五入,并显式转换为整数数据类型,我们的工作就完成了!

示例 1:当前日期和时间的整数时间戳

这里我们导入 DateTime 模块以使用它的 DateTime函数。然后使用 datetime.now()函数获取当前日期和时间。使用 DateTime.timestamp() 方法将 DateTime 对象转换为时间戳。我们将以秒为单位获取时间戳。然后舍入时间戳并将浮点数显式转换为整数,以秒为单位获得整数时间戳。

Python3
from datetime import datetime
curr_dt = datetime.now()
 
print("Current datetime: ", curr_dt)
timestamp = int(round(curr_dt.timestamp()))
 
print("Integer timestamp of current datetime: ",
      timestamp)


Python3
from datetime import datetime
dtime = datetime(2018, 1, 1, 20)
print("Datetime: ", dtime)
 
dtimestamp = dtime.timestamp()
print("Integer timestamp in seconds: ",
      int(round(dtimestamp)))
 
milliseconds = int(round(dtimestamp * 1000))
print("Integer timestamp in milliseconds: ",
      milliseconds)


Python3
import datetime
import calendar
 
d = datetime.datetime(1970, 1, 1, 2, 1, 0)
ttuple = d.timetuple()
 
itimestamp = calendar.timegm(ttuple)
print("Timestamp in integer since epoch:",
      itimestamp)


Python3
import datetime
import pytz
 
dtime = datetime.datetime.now()
timezone = pytz.timezone("Asia/Kolkata")
dtzone = timezone.localize(dtime)
 
print("Time Zone: ", dtzone.tzinfo)
print("Datetime: ", dtzone)
 
tstamp = dtzone.timestamp()
print("Integer timestamp: ", int(round(tstamp)))


输出:



Current datetime:  2021-08-25 15:04:33.794484
Integer timestamp of current datetime:  1629884074

示例 2:指定日期和时间的整数时间戳

将日期和时间作为 datetime()函数的参数。使用 datetime.timestamp() 方法将日期时间对象转换为时间戳。我们将以秒为单位获取时间戳。舍入时间戳并将浮点数显式转换为整数,以秒为单位获取整数时间戳。我们还可以通过乘以 1000 来将其转换为毫秒,以获得以毫秒为单位的整数时间戳。

蟒蛇3

from datetime import datetime
dtime = datetime(2018, 1, 1, 20)
print("Datetime: ", dtime)
 
dtimestamp = dtime.timestamp()
print("Integer timestamp in seconds: ",
      int(round(dtimestamp)))
 
milliseconds = int(round(dtimestamp * 1000))
print("Integer timestamp in milliseconds: ",
      milliseconds)

输出:

Datetime:  2018-01-01 20:00:00
Integer timestamp in seconds:  1514817000
Integer timestamp in milliseconds:  1514817000000

示例 3:使用 calendar.timegm 的 UTC(Universal Time Coordinated) 整数时间戳

首先,我们在 datetime.datetime() 对象中输入 UTIC 时间。然后我们将对象传递给 d.timtuple()函数,该函数给出一个包含年、月、日等参数的元组,然后使用日历函数将日期时间转换为整数 UTC 时间戳。

蟒蛇3

import datetime
import calendar
 
d = datetime.datetime(1970, 1, 1, 2, 1, 0)
ttuple = d.timetuple()
 
itimestamp = calendar.timegm(ttuple)
print("Timestamp in integer since epoch:",
      itimestamp)

输出:

Timestamp in integer since epoch: 7260

示例 4:特定时区整数时间戳

首先,我们使用 datetime.datetime.now() 获取当前时间。然后导入pytz库实例化时区对象来本地化日期时间。使用 datetime.timestamp() 方法将日期时间对象转换为时间戳。我们将以秒为单位获取时间戳。四舍五入并将时间戳转换为整数以获得整数时间戳。

蟒蛇3

import datetime
import pytz
 
dtime = datetime.datetime.now()
timezone = pytz.timezone("Asia/Kolkata")
dtzone = timezone.localize(dtime)
 
print("Time Zone: ", dtzone.tzinfo)
print("Datetime: ", dtzone)
 
tstamp = dtzone.timestamp()
print("Integer timestamp: ", int(round(tstamp)))

输出:

Time Zone:  Asia/Kolkata
Datetime:  2021-08-25 15:09:05.194413+05:30
Integer timestamp:  1629884345