首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -获取日期格式

Python -获取日期格式
EN

Stack Overflow用户
提问于 2015-12-04 02:27:10
回答 2查看 5.5K关注 0票数 4

我将获取字符串形式的日期,然后将其解析为datetime对象。有没有办法检查对象的日期格式是什么?

假设这是我正在创建的对象:

代码语言:javascript
复制
modified_date = parser.parse("2015-09-01T12:34:15.601+03:00")

我如何打印或获得这个对象的确切日期格式,我需要这个来验证它的格式是否正确,这样我就能够区分今天的日期和给定的日期。

EN

回答 2

Stack Overflow用户

发布于 2015-12-04 02:58:00

我看了一下源代码,不幸的是,python dateutil没有公开格式。事实上,它甚至根本不会生成对格式的猜测,它只是继续进行解析-代码就像big nested spaghetti of conditionals

你可以看看dateinfer,它看起来就是你要搜索的,但这些都是不相关的库,所以根本不能保证python-util会以dateinfer建议的相同格式进行解析。

代码语言:javascript
复制
>>> from dateinfer import infer
>>> s = "2015-09-01T12:34:15.601+03:00"
>>> infer([s])
'%Y-%d-%mT%I:%M:%S.601+%m:%d'

看看这个.601。很近,但不是雪茄。我认为它可能还混淆了月份和日期。如果给它多个日期字符串作为猜测的基础,可能会得到更好的结果。

票数 5
EN

Stack Overflow用户

发布于 2015-12-04 21:37:37

我需要这个来验证它的格式是否正确

如果您知道预期的时间格式(或一组有效的时间格式),那么可以使用它解析输入:如果成功,则时间格式是有效的(the usual EAFP approach in Python):

代码语言:javascript
复制
for date_format in valid_date_formats:
    try:
        return datetime.strptime(date_string, date_format), date_format
    except ValueError: # wrong date format
        pass # try the next format
raise ValueError("{date_string} is not in the correct format. "
                 "valid formats: {valid_date_formats}".format(**vars()))

这是一个complete code example (in Russian -- ignore the text, look at the code)

如果有许多有效的日期格式,那么为了提高时间性能,您可能希望将它们组合到一个正则表达式或convert the regex to a deterministic or non-deterministic finite-state automaton (DFA or NFA)中。

通常,如果您需要从较大的文本中提取日期,而这些文本的变化太大,无法手动创建解析规则;请考虑机器学习解决方案,例如webstruct (用于html输入)之类的NER system

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34073502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档