首页 > 解决方案 > 在 python 中基于 ms 中的 13 位 unixtime 时间戳计算时间戳

问题描述

我想计算系统给定的 13 位 unixtime 前后 300 毫秒的时间戳。我在这里检查了将 13 位 unixtime 转换为时间戳的问题。

然后,给定时间戳,我在 python 中编写了一个简单的代码来仔细检查输出是否正确。

假设系统的给定时间戳是 13 位 unixtime 并且等于 X = "1396226255964"。现在我需要计算新的时间戳“Y1”,即 X 之前的“300 毫秒”和 X 之后的“300 毫秒”的“Y2”。

此代码是否正确计算 Y1 和 Y2?

X = "1396226255964"
Y1 = int(X) - int (300000)
print("Y1:", Y1)
Y2 = int(X) + int (300000)
print("Y2:", Y2)

输出: Y1:1396225955964 Y2:1396226556620

标签: python

解决方案


from datetime import datetime, timedelta

X = "1396226255964"

X_dt = datetime.fromtimestamp(int(X)/1000)  # using the local timezone

y1= X_dt + timedelta(milliseconds=300)
y2 = X_dt + timedelta(milliseconds=-300)

print(X_dt.strftime("%Y-%m-%d %H:%M:%S,%f"))
print(y1.strftime("%Y-%m-%d %H:%M:%S,%f"))
print(y2.strftime("%Y-%m-%d %H:%M:%S,%f"))

推荐阅读