【问题标题】:Convert user understandable date time format string to strptime understandable format string将用户可理解的日期时间格式字符串转换为 strptime 可理解的格式字符串
【发布时间】:2013-05-24 12:12:43
【问题描述】:

如何将"dd/MM/yyyy""HH:mm""dd-MMM-yy""M/d/yyyy" 等转换为"%d/%m/%Y""%H:%M""%d-%b-%y""%m/%d/%Y" 等?

【问题讨论】:

  • 很有趣,但您希望这适用于任何有效的datetime 吗?
  • @jamylak 我不明白你的问题。任何无效datetime 的示例?
  • 我在问你是否想在这里支持整个表:docs.python.org/2/library/…
  • @jamylak 不是整个表格,只是那些具有等效用户可理解表示的表格。当我这样做时,"%j" 的等价物是什么?
  • ddd 是什么意思??

标签: python datetime-format


【解决方案1】:

您可以扩展 replacements 以涵盖所有可能的用户日期时间格式(您也可以编辑此答案以在此处包含它们)

import re

replacements = {
    r'dd': '%d',
    r'd': '%d',
    r'MM': '%m',
    r'M': '%m',
    r'yyyy': '%Y',
    r'HH': '%H',
    r'mm': '%M',
    r'MMM': '%b',
    r'yy': '%Y',
}

def fn(match):
    return replacements[match.group()]

def F(text):
    pat = '|'.join(r'\b' + re.escape(k) + r'\b' for k in replacements)
    return re.sub(pat, fn, text)

>>> F("dd/MM/yyyy")
'%d/%m/%Y'
>>> F("HH:mm")
'%H:%M'
>>> F("dd-MMM-yy")
'%d-%b-%Y'
>>> F("M/d/yyyy")
'%m/%d/%Y'

【讨论】:

    【解决方案2】:

    更改日期时间的格式

    导入日期时间

    d = datetime.datetime.strptime("2013-05-24", "%Y-%m-%d") datetime.datetime(2013, 5, 24, 0, 0)

    d.format("%d.%b.%Y") '2013 年 5 月 24 日'

    put前后两个下划线的格式化函数

    【讨论】:

      猜你喜欢
      • 2014-08-10
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多