使用strftime()函数中的%f在Python中获取微秒

8 浏览
0 Comments

使用strftime()函数中的%f在Python中获取微秒

我正在尝试使用strftime()到微秒精度,根据这里所述,使用%f似乎是可能的。然而,当我尝试以下代码时:

import time

import strftime from time

print strftime(“%H:%M:%S。%f”)

......我得到了小时,分钟和秒,但%f以%f的形式打印,没有微秒的迹象。我在Ubuntu上运行Python 2.6.5,所以应该没问题,应该支持%f(据我所知,它在2.6及以上版本中受支持)。

0
0 Comments

在Python的time模块中,无法使用%f获取微秒。对于仍然想只使用time模块的人来说,可以使用以下解决方法:

import time
now = time.time()
mlsec = repr(now).split('.')[1][:3]
print time.strftime("%Y-%m-%d %H:%M:%S.{} %Z".format(mlsec), time.localtime(now))

这样就可以得到类似于"2017-01-16 16:42:34.625 EET"的结果(是的,我使用毫秒,已经足够了)。

要详细了解代码的工作原理,可以将以下代码粘贴到Python控制台中:

import time
now = time.time()
print now
struct_now = time.localtime(now)
print struct_now
print time.strftime("%Y-%m-%d %H:%M:%S %Z", struct_now)
mlsec = repr(now).split('.')[1][:3]
print mlsec
timestamp = time.strftime("%Y-%m-%d %H:%M:%S.{} %Z".format(mlsec), struct_now)
print timestamp

为了澄清问题,我还在这里附上了我使用Python 2.7.12得到的结果:

import time
now = time.time()
print now
print now
struct_now = time.localtime(now)
print struct_now
print time.strftime("%Y-%m-%d %H:%M:%S %Z", struct_now)
mlsec = repr(now).split('.')[1][:3]
print mlsec
timestamp = time.strftime("%Y-%m-%d %H:%M:%S.{} %Z".format(mlsec), struct_now)
print timestamp

通过以上方法,你可以使用strftime()在Python中获取微秒。

0
0 Comments

问题出现的原因是time模块的strftime函数不支持获取毫秒信息,只能获取到秒级的时间信息。解决方法是使用datetime模块的strftime函数来获取毫秒信息。具体代码如下:

from datetime import datetime
datetime.now().strftime("%H:%M:%S.%f")

在Python 3中,datetime和time模块都支持使用%z指令来获取时区信息。可以参考datetime和time模块的官方文档来了解更多信息。如果只使用import datetime导入datetime模块,则需要使用datetime.datetime.now().strftime("%H:%M:%S.%f")来获取毫秒信息。

0
0 Comments

在这段内容中,问题的出现原因是用户查看了错误的文档。正确的方法是使用datetime模块的strftime函数来获取微秒。下面是解决问题的代码示例:

from datetime import datetime
now = datetime.now()
now.strftime("%H:%M:%S.%f")

这段代码将返回当前时间的小时、分钟、秒和微秒。用户还提供了datetime模块文档的链接,以便进一步了解该模块的用法。此外,用户还提到了datetime和time模块的区别,并提供了一个链接供用户深入了解这两个模块之间的差异。

0