You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将人类可读日期格式('YYYY-MM-DD')转为datetime格式字符串('%Y-%m-%d')

实现人类可读日期格式到datetime解析格式的转换

当然有办法实现这种转换,下面是两种实用方案:

方案1:固定映射字典

针对常见的人类可读格式,直接建立对应关系表,简单高效,适合需求明确的场景。

def human_to_datetime_format(human_format):
    format_map = {
        'YYYY-MM-DD': '%Y-%m-%d',
        'MM/DD/YYYY': '%m/%d/%Y',
        'DD-MM-YYYY': '%d-%m-%Y',
        'YYYY/MM/DD': '%Y/%m/%d'
        # 可以根据业务需求扩展更多格式
    }
    # 若输入格式不在映射中,可返回None或抛出 ValueError 提示用户
    return format_map.get(human_format, None)

# 使用示例
user_input_format = 'YYYY-MM-DD'
parse_format = human_to_datetime_format(user_input_format)
# 之后就可以用 parse_format 来解析日期字符串

方案2:动态占位符替换

如果需要支持更多自定义的人类可读格式,可以通过字符串替换,把易读的占位符转换成datetime识别的符号。

def convert_human_date_format(human_format):
    token_replacements = {
        'YYYY': '%Y',
        'MM': '%m',
        'DD': '%d',
        'HH': '%H',
        'mm': '%M',
        'ss': '%S'
        # 按需添加时分秒等更多占位符映射
    }
    for human_token, dt_token in token_replacements.items():
        human_format = human_format.replace(human_token, dt_token)
    return human_format

# 使用示例
user_custom_format = 'YYYY-MM-DD HH:mm:ss'
dt_parse_format = convert_human_date_format(user_custom_format)
# 输出结果为 '%Y-%m-%d %H:%M:%S'

额外提示

  • 要注意处理用户输入无效格式的情况,比如返回明确的错误提示,避免程序崩溃
  • 可以结合两种方案:先查固定映射字典,找不到再尝试动态替换,兼顾效率和灵活性

内容的提问来源于stack exchange,提问作者user2734126

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 15:07:04