从epoch开始的毫秒数是多少?
请注意,我需要的是实际的毫秒数,而不是秒乘以1000。我正在比较那些需要不到一秒的时间和需要毫秒精度的东西的时间。(我看了很多答案,似乎都有1000个答案)
我正在比较我收到一个POST请求的时间和服务器上的结束时间。我只需要这两次的格式相同,不管是什么。我认为Unix时间是可行的,因为javascript有一个函数来获取它。
- 如果你需要毫秒的准确度,你确定你需要绝对时间(从epoch开始)?通常,准确度只需要相对的意义,比如说相对于计算机启动的时间。
- 我正在比较我收到一个POST请求的时间和服务器上的结束时间。实际上,我只需要这两次的格式相同,不管是什么。我认为Unix时间是可以工作的,因为JS有一个函数来实现这一点。
- 您可能希望time.perf_counter()(只有相对值才有意义)测量短间隔,而不是像time.time()所提供的绝对时间。
time.time() * 1000会给你millisecond精度,如果可能的。
int(time.time() * 1000)会做你想要的。time.time()归来的普遍价值与双精度浮计秒从悬置,所以它是不multiplying愤怒的精密。
另一个词"学院"kqr misleading答案:time.clock()不给你时间的时代。它给你时间,流程跑在unix的CPU时间,或通过从第一通电话的Windows功能,看到Python的文档。
也它的威胁,医生的状态,这是time.time()冰槽的保证给你MS精密。虽然这个说法冰主要为了确保你不按这两个rely精密在线或praehistoric嵌入式硬件,和我不知道任何实例,实际上,你不会得到MS精密。
我看到很多人suggesting time.time()。当time.time()制冰方式"的准确测量的实际时间的一天,它不保证给你millisecond精密!从文件:
Note that even though the time is always returned as a floating point number, not all systems provide time with a better precision than 1 second. While this function normally returns non-decreasing values, it can return a lower value than a previous call if the system clock has been set back between the two calls.
这是不是你想要的程序,当比较两倍!它可以吹上没有这么多有趣的方式,你能告诉我发生了什么事。事实上,当比较两小时,你不知道什么是真的需要两天时间,它是只读的,就像双值有相同的出发点。这个,你time图书馆提供的另一个程序:time.clock()。在文献上说:
On Unix, return the current processor time as a floating point number expressed in seconds. The precision, and in fact the very definition of the meaning of"processor time", depends on that of the C function of the same name, but in any case, this is the function to use for benchmarking Python or timing algorithms.
On Windows, this function returns wall-clock seconds elapsed since the first call to this function, as a floating point number, based on the Win32 function QueryPerformanceCounter(). The resolution is typically better than one microsecond.
使用time.clock()。
或如果你只是想测试你的代码如何固定冰上行走,你可以让它对你自己convenient使用timeit.timeit()这是《测量全是你和生命的事实上的标准elapsed测量代码的执行时间。
- 所以在Unix上,clock()是不合适的。正如你所提到的,它计算处理器时间,这与挂钟时间不同,甚至以相对的方式。
- 如果只比较两次,计算两个clock()调用之间的差异将为您提供最准确的时间度量。使用time(),delta可能不够精确,甚至可能是负值!
- 如果同时运行多个程序,系统会变慢。程序需要更多的挂钟时间,但CPU时间相同。如果你需要精确的时间,那会有很大的不同。
- 如果突然大量调整系统时间,使用time()可能是一个问题。这就是为什么NTP会慢慢调整时间频率,而不是突然将时间设置为不同的值。
- @glglgl python clock()方法依赖于底层的c clock()函数,该函数具有固定的计时比率CLOCKS_PER_SEC。除非我错过了什么,否则滴答速度不应该随时间而变化。
- 这个程序显示了不同之处。如果我一直运行到最后,最后一次调用fac()需要大约.58秒的CPU时间,但实际时间大约为7.5秒。这是因为它们没有得到CPU的全部关注,而在.58秒应该完成的作业由于并行化需要7.5秒。
- 有趣。我并没有把平行化作为其中的一个因素。看来你是对的。
- 如果要将结果放在数据库中,但一定要先转换为str,因为python将注意后面带有"l"的长整数。典型的python工具,但我今天被它烧坏了……
- 这个问题具体地说是"自纪元以来的毫秒数"。江户十一〔九〕嘿!真的!现在是1970年1月1日!等等,那意味着我还没出生!::POW::AW。胡扯。
- @Michaelscheper不会太拘泥于"时代"这一部分——更多地关注问题的"比较两次"、"毫秒"和"基准"方面。xyproblem.info:)
- @我很抱歉,但你不能判断我"被卡住"了什么。我在这里做了一次网络搜索,因为我需要知道从那个时代开始的时间,或者至少是其他一些一致的参考时间。问题的主体在第一句话中提到了时代权利,因此它是一个合理的"焦点"。当我尝试使用time.clock()时,我的代码失败了,因为我正在比较不同进程的时间,而time.clock()显然是特定于进程的。您的答案可能对某些人有帮助,但它确实能准确回答问题,因此请编辑它以澄清问题。
- 这个答案显然是错误的,尤其是在多线程环境中,应该被否决。
- 关于python文档,我一直想知道哪些系统没有time.time()的次二级分辨率。比如,哪一个特别的不适合,所以我可以小心。
使用时间:
1 2 3 4 5 6 7 8
| >>> import datetime
>>> delta = datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)
>>> delta
datetime.timedelta(15928, 52912, 55000)
>>> delta.total_seconds()
1376232112.055
>>> delta.days, delta.seconds, delta.microseconds
(15928, 52912, 55000) |
- 除非当前的UTC偏移量与1970年完全相同,否则是不正确的。使用.utcnow()。更多
1 2 3
| import datetime
time = datetime.datetime.now()
ms = time.microsecond |
归来的一位microsecond 6号。最后三位数是无用的在PC硬件的信息工程和抽搐,这是slower比microsecond。第一三位应该够了你的需要。
- "在个人电脑中是无用的,因为它使用的是比微秒慢的滴答"。有趣。
- 这不会给出从epoche开始的毫秒数,而是从最后一秒开始的毫秒数。
- 我很好奇为什么我在这一页上看到这么多拼写"epoche"。谷歌搜索显示"epoche是维多利亚州Kallista的一家可爱的礼品店",这可能不是人们的意思。还有epoch&233;,一个古希腊术语,可能是现代英语单词"epoch"的来源。但在我查过的每本字典中,"epoch"是正确的拼写…除非"epoche"是另一个"us-english"拼写…
- @只有当你把偶然出现的拼写错误算作美式英语时,你才可以使用迈克尔斯切珀。因为这个页面上的两个实例都来自同一个用户,所以我们可以假设他是错误的,或者故意把它带回希腊来源。