【问题标题】:compute a timestamps based on 13-digit unixtime timestamp in ms in python在 python 中基于 ms 中的 13 位 unixtime 时间戳计算时间戳
【发布时间】:2019-11-27 04:31:55
【问题描述】:

我想计算系统给定的 13 位 unixtime 前后 300 毫秒的时间戳。我检查了here 的问题,将 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

【问题讨论】:

  • 您可能需要将其转换为datetime,然后再减去。

标签: python


【解决方案1】:
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"))

【讨论】:

  • 但我需要得到与 X 相同的 13 位 unixtime 格式的输出 y1 和 y2。我该怎么做?
【解决方案2】:

13位Unix-time已经是毫秒,所以如果你想得到300毫秒或之后,你只需要:

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

这有点不寻常,X 通常应该是整数。

【讨论】:

  • 哦,没关系。你确定从这个?
  • 我 100% 确定这一点。无论如何,关于整数或整数,你的选择@MohsenAli
猜你喜欢
  • 2018-09-17
  • 2020-05-04
  • 2018-08-21
  • 2018-05-20
  • 2017-12-22
  • 1970-01-01
  • 2020-07-29
  • 2015-01-26
  • 2015-08-06
相关资源
最近更新 更多