当前位置:  开发笔记 > 编程语言 > 正文

用微秒解析日期时间字符串

如何解决《用微秒解析日期时间字符串》经验,为你挑选了3个好方法。

我有一个文本文件,在isoformat中有很多日期时间字符串.字符串类似于:

'2009-02-10 16:06:52.598800'

这些字符串是使用生成的str(datetime_object).问题是,由于某种原因,str(datetime_object)当datetime对象的微秒设置为零时生成不同的格式,并且某些字符串如下所示:

'2009-02-10 16:06:52'

如何解析这些字符串并将其转换为日期时间对象?

获取对象中的所有数据非常重要,包括微秒.

我必须使用Python 2.5,我发现%f2.5中不存在微秒的格式指令.



1> Eli Bendersk..:

或者:

from datetime import datetime

def str2datetime(s):
    parts = s.split('.')
    dt = datetime.strptime(parts[0], "%Y-%m-%d %H:%M:%S")
    return dt.replace(microsecond=int(parts[1]))

使用strptime自己来解析日期/时间字符串(因此不需要考虑正则表达式的极端情况).



2> Soviut..:

使用dateutil模块.它支持比内置Python更广泛的日期和时间格式.

您需要easy_install dateutil才能使以下代码正常工作:

from dateutil.parser import parser

p = parser()
datetime_with_microseconds = p.parse('2009-02-10 16:06:52.598800')
print datetime_with_microseconds.microsecond

结果是:

598799



3> RSabet..:

有人已经提出了这个问题的错误:1982年的问题.由于您需要使用它来使用python 2.5,您必须手动解析该值,然后操作datetime对象.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有