无法使用strptime()正确解析微秒

湿婆

我有绳子19:04:01:94891

当我将此传递datetime.datetime.strptime()为:

datetime.strptime('19:04:01:94891', "%H:%M:%S:%f")

我得到以下结果:

datetime.datetime(1900, 1, 1, 19, 4, 1, 948910)

但是我希望结果是:

datetime.datetime(1900, 1, 1, 19, 4, 1, 94891)

区别在于microseconds

从文件中读取字符串时,如何在不修改字符串的情况下获得预期的结果?

将要

问题是您的输入不是零填充的,因此如果我们以11微秒为单位,则问题将更加严重。让我们从源头上解决问题,然后首先清理输入:

def fixMicroseconds(timestamp):
   parts = timestamp.split(':')

   return ':'.join(
       parts[:-1] + ['{:06d}'.format(int(parts[-1]))]
   )

现在,它将按照Python的喜欢零填充到6位数字。

这是此工作的示例:

In [1]: def fixMicroseconds(timestamp):
   ....:     parts = timestamp.split(':')
   ....:
   ....:     return ':'.join(
   ....:         parts[:-1] + ['{:06d}'.format(int(parts[-1]))]
   ....:     )
   ....:

In [2]: fixMicroseconds('19:04:01:94891')
Out[2]: '19:04:01:094891'

In [3]: fixMicroseconds('19:04:01:13')
Out[3]: '19:04:01:000013'

In [4]: datetime.datetime.strptime(fixMicroseconds('19:04:01:94891'), "%H:%M:%S:%f")
Out[4]: datetime.datetime(1900, 1, 1, 19, 4, 1, 94891)

确实需要在调用之前清理输入strptime(),因为这是strptime()期望的值(6位数字)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用 strptime 解析日期时间

来自分类Dev

Python使用strptime解析日期

来自分类Dev

无法正确解析时间

来自分类Dev

CsvHelper无法正确解析

来自分类Dev

无法正确解析YAML

来自分类Dev

无法解析正确的 URI

来自分类Dev

EventEmitter无法使用引导程序模式解析正确的参数

来自分类Dev

使用NavController的BottomNavigation无法正确检索/解析参数

来自分类Dev

PHP-SimpleXMLElement无法使用名称空间正确解析

来自分类Dev

使用Boost.Spirit时无法正确解析

来自分类Dev

使用 javamail 解析 eml 无法正确识别嵌套消息

来自分类Dev

AJAX无法正确解析网址

来自分类Dev

Java SAX无法正确解析

来自分类Dev

JSON PHP无法正确解析

来自分类Dev

Java SimpleDateFormat无法正确解析

来自分类Dev

JavaScript无法正确解析日期

来自分类Dev

Getopt无法正确解析bash

来自分类Dev

HtmlElement无法正确解析标签

来自分类Dev

Arduino无法正确解析文本

来自分类Dev

fgetcsv无法正确解析该行

来自分类Dev

Ajax POST无法正确解析

来自分类Dev

XML无法正确解析属性

来自分类Dev

无法正确解析JSON数组

来自分类Dev

无法正确解析响应xml

来自分类Dev

无法正确解析JSON数据

来自分类Dev

Ajax 无法正确解析数据?

来自分类Dev

无法正确解析 JSON 正文

来自分类Dev

Python Strptime有时会丢失微秒

来自分类Dev

为什么使用nltk的斯坦福解析器无法正确解析句子?