如何将日期字符串中的短英文月份名称转换为对应数字格式
方案1:Linux/macOS 环境下使用date命令直接转换
单条命令即可完成转换,对应两种输出格式的命令如下:
# 输出 2021/30/09 19:00:04 格式 date -d "Sep 30 2021 19:00:04 +08" +"%Y/%d/%m %H:%M:%S" # 输出 20213009190004 格式 date -d "Sep 30 2021 19:00:04 +08" +"%Y%d%m%H%M%S"
如果需要批量处理多个日期,把所有日期按行存到文本文件中,配合xargs或循环语句即可批量转换。
方案2:Python 代码实现(跨平台通用)
兼容性强,可直接嵌入到自己的业务脚本中使用:
from datetime import datetime import locale # 中文环境下需要加这行配置才能识别英文短月份,英文系统可省略 locale.setlocale(locale.LC_TIME, 'en_US.UTF-8') input_str = "Sep 30 2021 19:00:04 +08" # 解析输入的日期格式 dt = datetime.strptime(input_str, "%b %d %Y %H:%M:%S %z") # 输出 2021/30/09 19:00:04 格式 print(dt.strftime("%Y/%d/%m %H:%M:%S")) # 输出 20213009190004 格式 print(dt.strftime("%Y%d%m%H%M%S"))
方案3:Windows PowerShell 环境实现
$inputDate = "Sep 30 2021 19:00:04 +08" $dt = [DateTime]::ParseExact($inputDate, "MMM dd yyyy HH:mm:ss zzz", [Globalization.CultureInfo]::GetCultureInfo("en-US")) # 输出 2021/30/09 19:00:04 格式 Get-Date $dt -Format "yyyy/dd/MM HH:mm:ss" # 输出 20213009190004 格式 Get-Date $dt -Format "yyyyddMMHHmmss"
内容的提问来源于stack exchange,提问作者Dulguun
相关产品推荐
相关产品推荐

