python - 解析python中可以有多种格式的日期

标签 python ruby parsing datetime

我想解析一个我事先知道的可以多种格式出现的日期。如果我无法解析,我返回 nil。在 ruby 中,我喜欢这样:

DATE_FORMATS = ['%m/%d/%Y %I:%M:%S %p', '%Y/%m/%d %H:%M:%S', '%d/%m/%Y %H:%M', '%m/%d/%Y', '%Y/%m/%d']

def parse_or_nil(date_str)
    parsed_date = nil
    DATE_FORMATS.each do |f|
        parsed_date ||= DateTime.strptime(date_str, f) rescue nil
    end
    parsed_date
end

这很简洁并且有效。我怎样才能在 Python 中做同样的事情?

最佳答案

我会尝试 dateutil .它可以识别大多数格式:

from dateutil import parser
parser.parse(string)

如果您最终按照@RocketDonkey 的建议使用 datetime.strptime:

from datetime import datetime

def func(s,flist):
    for f in flist:
        try:
            return datetime.strptime(s,f)
        except ValueError:
            pass

关于python - 解析python中可以有多种格式的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14245029/

相关文章:

python - 如何从 python 应用程序确定 X 服务器/X 转发是否正在运行?

c# - 为什么 TimeSpan.ParseExact 不起作用

Python:解析和分组目录中的文件名

android - AOSP中哪里是解析AndroidManifest.xml的代码?

python - 将 "Q12019"对象转换为 datetime64

python - 两个列表,如果找到一个共同的匹配打印另一个列表元素

ruby-on-rails - PhantomJS version 1.4.0 版本问题

ruby - 自学 Ruby 的最佳方式?

ruby - Vagrant:在 private_network 中设置 VM 的 MAC 地址(hostonly)

python - 如何在Selenium Python中单击多个产品URL