如何测试给定的时间戳是以秒还是毫秒为单位?

2024-05-15 01:11:16 发布

您现在位置:Python中文网/ 问答频道 /正文

假设一个给定的变量,它包含一个UNIX时间戳,但是它是秒格式还是毫秒格式是未知的,我想分配给秒格式的变量

例如:

unknown = 1398494489444 # This is millisecond
t = ???

更新:我知道如果不给一些限制就不可能说出来,所以这里是

  • 当前-86400*365<;未知<;当前

Assume current_ts = current unix timestamp


Tags: ltis格式时间unixcurrentthistimestamp
1条回答
网友
1楼 · 发布于 2024-05-15 01:11:16

如果使用x位(以毫秒为单位)的最大时间戳值convert,则会得到如下结果:

  • 999999999999(13位数字)表示11月20日星期六,2286,17:46:39 UTC
  • 999999999999(12位)表示2001年9月9日星期日01:46:39 UTC
  • 99999999999(11位)表示1973年3月3日星期六09:46:39 UTC

你的时间戳能超过2001年吗?如果不是,我认为你可以安全地检查这个数字是否有13位或更多-如果是,你有毫秒,如果没有秒。当然,只有当时间戳(以秒为单位)也有13位数字时,这才起作用,这意味着时间戳(以毫秒为单位)将有16位数字:

  • 10000000000000(16位)是指9月27日星期五,33658,01:46:40,但那时我将生活在半人马座阿尔法星系的行星上,时间标准可能会有一些变化:)

如果你的时间戳不能追溯到1973年,你可以将条件放宽到12位或更多。只有在以下情况下,情况才能正常:

  • 10000000000000(15位)表示11月16日星期三,5138 09:46:40 因为这在几秒钟内会有12个数字并且会和你的情况重叠

相关问题 更多 >

    热门问题