【问题标题】:How can you convert a string with varying length to datetime如何将具有不同长度的字符串转换为日期时间
【发布时间】:2021-09-27 11:49:29
【问题描述】:

我有一个列表,其中包含 Y-M-D(例如 2010-01-14)格式的字符串,但有些没有月份和/或日期。我试过根据长度来做,但它变得又长又乱。有没有简单的方法可以做到这一点?

【问题讨论】:

  • 没有月份和/或日期的字符串是什么样的?
  • 您的输入和预期输出是什么?
  • 尝试解析为 Y-M-D,如果失败,尝试解析为 Y-M...?
  • “有些没有月份和/或日期” - 对我来说这听起来有点绝望,你怎么知道是否提供了月份或日期那么呢?
  • 日期只是格式,但删除了月份,有时甚至几天(2010-01-14、2010-01、2010)

标签: python datetime strptime


【解决方案1】:

这是否满足您的需求:dateutil's parser 带有默认日期,例如:

from datetime import datetime
from dateutil import parser

for s in '2021', '2021-01', '2021-02-03':
    print(parser.parse(s, default=datetime(2021,1,1)))
    
2021-01-01 00:00:00
2021-01-01 00:00:00
2021-02-03 00:00:00

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    相关资源
    最近更新 更多