Python中字符串的datetime,最佳猜测字符串形式

2024-04-23 16:20:25 发布

您现在位置:Python中文网/ 问答频道 /正文

从字符串获取datetime的函数datetime.strptime(date_string, format)需要字符串格式作为第二个参数。有没有一种方法可以在不知道确切格式的情况下从字符串构建datetime,而让Python进行最佳猜测?


Tags: 方法函数字符串format参数datetimedatestring
3条回答

使用dateutil库。

我已经在使用dateutil作为处理时区所必需的库
(见Convert UTC datetime string to local datetimeHow do I convert local time to UTC in Python?

我刚刚意识到它支持日期解析:

import dateutil.parser
yourdate = dateutil.parser.parse(datestring)

(另见How do I translate a ISO 8601 datetime string into a Python datetime object?

如果只检查日期,就可以使用一个简单的函数。

def get_date(s_date):
    date_patterns = ["%d-%m-%Y", "%Y-%m-%d"]

    for pattern in date_patterns:
        try:
            return datetime.datetime.strptime(s_date, pattern).date()
        except:
            pass

    print "Date is not in expected format: %s" %(s_date)
    sys.exit(0)

在我成为python用户之前,我是一个perl用户。有一件事我总是错过,但没有看到任何接近它的Date::Manip。该模块可以从少量的数据片段中提取一个好的时间戳。我几乎怀疑它的作者和魔鬼达成了协议。

我在Python中遇到了一些东西:

如果你有更好的发现,我很想听听。

相关问题 更多 >