如何将以毫秒为单位的包含7位数字的日期字符串转换为Python中的日期

发布于 2021-01-29 15:04:34

当千位位数为6位时,%f起作用,但如果位数超过6位,它将引发错误。我有一个临时解决方案,将第7位数字硬编码为0,但是还有更好的方法吗?目前以下作品

print (datetime.datetime.strptime(('2014-11-19 00:00:00.0000000').strip(), '%Y-%m-%d  %H:%M:%S.0%f')).date()
关注者
0
被浏览
106
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    根据datetime.strptime()
    https://docs.python.org/2/library/datetime.html#strftime-and-strptime-
    behavior
    的文档,技术说明(4),%f仅接受1-6个字符:

    %f是对C标准中格式字符集的扩展(但在日期时间对象中单独实现,因此始终可用)。与strptime()方法一起使用时,%f伪指令接受1到6位数字和右边的零填充。

    我认为您没有正确解决问题。您不应该在字符串前添加零,而应将所有内容都丢弃到6以上(这对时间贡献不大)。

    像这样:

    s='2014-11-19 00:00:00.0000000'
    print (datetime.datetime.strptime((s[:26]).strip(), '%Y-%m-%d  %H:%M:%S.%f')).date()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看