python - 在 Python 中为不同的日期格式创建一个解析函数

标签 python if-statement lambda date-parsing

我想用 lambda 创建一个能够识别两种不同格式的解析函数

"2014-01-06 15:23:00"

"2014-01-06"

想法是使用此函数创建一个 pandas 数据框,但在某些值中缺少小时

这是我的第一个想法

parse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S') if x is True else pd.datetime.strptime(x, '%Y-%m-%d')

看来x is True 是不正确的

有什么想法吗??

最佳答案

dateutil 有一个处理多种格式的解析器:

>>> dateutil.parser.parse('2015-07-04')
datetime.datetime(2015, 7, 4, 0, 0)

>>> dateutil.parser.parse('2015-07-04 11:23:00')
datetime.datetime(2015, 7, 4, 11, 23)

>>> dateutil.parser.parse('2015-07-04T11:23:56')
datetime.datetime(2015, 7, 4, 11, 23, 56)

甚至像这样的非 iso 格式

>>> dateutil.parser.parse('5-6-15')
datetime.datetime(2015, 5, 6, 0, 0)

关于python - 在 Python 中为不同的日期格式创建一个解析函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31221916/

相关文章:

python - 如何为 setuptools 分发创建嵌套的命名空间包

javascript - 如果在特定页面上运行脚本 - rails

php - php 中的 if 语句使用日期

java - 除了节省代码行之外,lambda 表达式还有其他用途吗?

c# - 这种闭包组合行为是 C# 编译器错误吗?

c# - 如何翻译此 C# 示例中的 Lambda 运算符函数?

python - 允许用户删除 python 中的用户输入

python - "Proper way"在archlinux上管理多个Python版本

python - url_for 迁移到 Flask Restful

python - 如何使用 Python 找到两个日期之间的年差? (计算一个人是否超过 18 岁)