我一直在努力找到一种方法来获取自1970-01-01 00:00:00 UTC以来的时间,以秒为单位,在python中以纳秒为单位,我找不到能给我正确精度的任何东西。

我尝试过使用时间模块,但是精度只有几微秒,所以我尝试的代码是:

import time

print time.time()

这给了我这样的结果:

1267918039.01

但是,我需要一个看起来像这样的结果:

1267918039.331291406

有谁知道以秒和纳秒表达UNIX时间的可能方法? 我找不到设置正确精度或以正确格式获得结果的方法。 感谢您的任何帮助

@GregS:持久性伴随着年龄:)

由于字符串格式化,您的精度正在丢失:

>>> import time

>>> print"%.20f" % time.time()

1267919090.35663390159606933594

实际上我可以想象这么多的小数位是准确的,但有精度!:)

你的意思是这么多小数位不准确。 最近CPython上的time.time()在操作系统上使用了clock_gettime(2),GetSystemTimeAsFileTime()(你也可以在早期的Python版本上调用它们) - 尽管可能系统时间不够精确,即使对于基于微秒的旧接口也是如此。

自1970-11-15以来,从时间开始就不可能获得纳秒级的精度。时间无关你使用什么格式,因为time.time返回浮点数,它只有53位有效精度,只能代表大约104天的纳秒精度(9007199254740992)纳秒)。

从Python 3.7开始,使用time.time_ns()很容易实现

Similar to time() but returns time as an integer number of nanoseconds since the epoch.

在Python 3.7版本中包含纳秒的所有新功能:

PEP 564:添加纳秒级分辨率的新时间函数

问题可能与您的操作系统有关,而不是Python。请参阅time模块的文档:http://docs.python.org/library/time.html

time.time()

Return the time as a floating point

number expressed in seconds since the

epoch, in UTC. 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.

换句话说:如果你的操作系统无法做到,那么Python就无法做到。您可以将返回值乘以适当的数量级,以获得纳秒值,尽管可能不精确。

编辑:返回是一个浮点变量,因此逗号后面的位数会有所不同,无论您的操作系统是否具有该精度级别。您可以使用"%.nf"对其进行格式化,其中n是您想要的位数,但是,如果您想要一个固定点字符串表示。

我认为问题可能既不是操作系统也不是python ...问题是应该有一种方法来获取元数据,这是目前支持的最大精度时间和一种获取时间的方法,我们这样做 不知道。:)

这取决于时钟的类型,你的操作系统和硬件是否有甚至可以达到纳秒精度。从time模块文档:

The precision of the various real-time functions may be less than suggested by the units in which their value or argument is expressed. E.g. on most Unix systems, the clock"ticks" only 50 or 100 times a second.

在Python 3上,time模块允许您访问5种不同类型的时钟,每种时钟具有不同的属性;其中一些可能为您提供纳秒精确计时。使用time.get_clock_info()功能查看每个时钟提供的功能以及报告的精确时间。

在我的OS X 10.11笔记本电脑上,可用的功能包括:

>>> for name in ('clock', 'monotonic', 'perf_counter', 'process_time', 'time'):

...     print(name, time.get_clock_info(name), sep=': ')

...

clock: namespace(adjustable=False, implementation='clock()', monotonic=True, resolution=1e-06)

monotonic: namespace(adjustable=False, implementation='mach_absolute_time()', monotonic=True, resolution=1e-09)

perf_counter: namespace(adjustable=False, implementation='mach_absolute_time()', monotonic=True, resolution=1e-09)

process_time: namespace(adjustable=False, implementation='getrusage(RUSAGE_SELF)', monotonic=True, resolution=1e-06)

time: namespace(adjustable=True, implementation='gettimeofday()', monotonic=False, resolution=1e-06)

所以使用time.monotonic()或time.perf_counter()函数理论上会给我纳秒分辨率。两个时钟都没有给我一个时间,只有经过的时间;这些值是其他任意的。然而,它们可用于测量物品的使用时间。

您不太可能从任何当前的机器获得纳秒精度。

机器无法创建精度,并且在不合适的位置显示有效数字不是正确的事情。

我不认为有一种独立于平台的方式(可能是某些第三方编写了一个,但我找不到它)以在纳秒内获得时间;您需要以特定于平台的方式执行此操作。例如,这个SO问题的答案显示了如何在为"实时"操作提供librt.so系统库的平台上执行此操作。

python时间函数纳秒_在Python中以秒和纳秒获取POSIX / Unix时间?相关推荐

  1. python replace函数 成功 失败_解决python replace函数替换无效问题

    解决python replace函数替换无效问题 python replace函数替换无效问题 str = "hello,china!" str.replace("hel ...

  2. python使用函数的目的_在Python 3.x中经常看到定义函数有一个单独的 * 参数?定义这样参数的目的是?怎样对其取值呢?...

    参数在python中总是通过赋值进行传递的.在默认情况下,参数是通过其位置进行匹配的,从左到右,而且必须精确的传递和函数头部参数名一样多的参数. 这种默认的传递方式很简单 def f(a,b,c): ...

  3. python绝对值函数偏码_绝对值python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 试图建立关分拣python字典,我将如何去打印基于该值的绝对值排序顺序pytho ...

  4. python input函数详解_对Python3中的input函数详解

    下面介绍python3中的input函数及其在python2及pyhton3中的不同. python3中的ininput函数,首先利用help(input)函数查看函数信息: 以上信息说明input函 ...

  5. python mat函数的作用_介绍python的matplotlib常用绘图函数

    免费学习推荐:python视频教程 matplotlib具有强大的绘图功能,但是语句琐碎,每次使用都需要一句一句书写未免太过麻烦.本文根据平时绘图经验总结了常用绘图函数,可以直接使用,非常方便impo ...

  6. python调用函数怎么错_在Python中从类调用函数时参数数目错误

    我试图用python编写一个遗传算法的实现.上面写着我用两个参数来调用它,而只有一个是允许的,但我肯定我不允许.在 以下是相关代码:class GA: def __init__(self, best, ...

  7. python画函数图像网格_用python 画一个网格

    编写一个能画出如下网格(grid)的函数:```+----+----+||||||||||||+----+----+||||||||||||+----+----+提示:你可以使用一个用逗号分隔的值序列 ...

  8. python二元函数如何编写_利用python实现PSO算法优化二元函数

    python实现PSO算法优化二元函数,具体代码如下所示: import numpy as np import random import matplotlib.pyplot as plt from ...

  9. python求和函数详解_关于python:对多个数字求和的函数

    本问题已经有最佳答案,请猛点这里访问. 我刚接触到Python,开始学习执行函数.我开始添加数字,但我只能求和两个数字,如果我想求和更多,就需要编辑程序.这是我的密码 1 2 3 4 5 6 7def ...

最新文章

  1. mysql自增变量插入行时需要赋值
  2. .NET中的枚举(Enum)
  3. 安装ssr_12月23日先锋首测启动,累计登录3天必得SSR!
  4. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 9丨平均工资:部门与公司比较【难度困难】
  5. Xshell6突然连不上K8S所在的虚拟机
  6. 线性表的顺序表示以及实现
  7. Eclipse提速优化方法
  8. 【registry】registry 0.9 源码 在 windows下运行
  9. UI设计的扁平化图标模板素材
  10. 代理模式 vs 装饰模式
  11. 32位win10服务器系统,微软将停止支持32位Win10系统 32位Win10系统什么时候停止支持...
  12. 【AI视野·今日CV 计算机视觉论文速览 第193期】Fri, 7 May 2021
  13. CSS 中 position 属性详解
  14. 基于SSH的房屋租赁系统的设计与实现
  15. ESP32 优化笔记(一)内存优化
  16. C++ 并发指南-atomic原子变量使用struct(二)
  17. 【Typora启动报错】This beta version of Typora is expired, please download and install a newer version.
  18. 【敬伟ps教程】图层相关知识
  19. [重要笔记]路由器的包转发操作(全面认识路由器)
  20. java ftpClient 下载文件损坏问题

热门文章

  1. sdkman软件开发工具包管理器
  2. 截断二进制指数退避算法c++实现
  3. 电子DIY:用单片机设计一款USB游戏手柄
  4. 年轻人的第一台挂灯:米家显示器挂灯
  5. 休息时间!哪些业余活动能提升开发人员的技能?
  6. 转载:optparse模块OptionParser学习
  7. 高德路径规划预估打车价格
  8. 优化 | Pick and delivery problem的简介与建模实现(二)
  9. 拽一个贵人出来给你当炮架子
  10. hashcat破解WiFi显示No hashes loaded的解决方法