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