Python Strptime偶尔会丢失微秒

时间:2016-02-12 00:52:18

标签: python strptime

我传入的数据格式为%Y-%m-%d%H:%M:%S%f。

所以我使用基于该结构的数据,一旦蓝月亮出错。所以当一些事情发生时,我开始把它倾倒出去,我注意到最后的微秒丢失了。

我假设这意味着它已经死了0并且根本没有发送它而不是发送.000000

在我的头脑中,我可以通过"分拆它。"并且每次都计算len。将其拆分为%Y-%m-%d%H:%M:%S如果它低于微秒的长度但是有一种更简洁的方法来处理缺少的毫秒并用000&#39替换它;?的

我抓住了丢失毫秒的转储,并在它之后抛出了ValueError。我没有想到它我想我认为它已经发送了.000000但它似乎是最明显的问题http://puu.sh/n4BLT/9b3fb473fb.png

1 个答案:

答案 0 :(得分:2)

为什么不试试两个?

def parse_txt(txt):
    try: 
        return datetime.datetime.strptime(txt, "%Y-%m-%d %H:%M:%S.%f")
    except ValueError:
        return datetime.datetime.strptime(txt, "%Y-%m-%d %H:%M:%S")

parse_txt("2001-01-01 01:01:01")    # => datetime.datetime(2001, 1, 1, 1, 1, 1)