Python实现Zulu格式日期字符串转标准时间字符串
字符串格式转换方案
针对固定格式YYYYMMDDTHHmmZ转YYYY-MM-DD HH:mm,可以用纯字符串操作(高效,无需日期解析)或日期解析后格式化两种方式,以下是主流语言的实现:
Python 实现
方法1:纯字符串切片拼接
因为输入格式完全固定,直接通过切片提取对应部分再拼接即可:
input_str = "20221001T0545Z" output_str = f"{input_str[:4]}-{input_str[4:6]}-{input_str[6:8]} {input_str[9:11]}:{input_str[11:13]}" print(output_str) # 输出: 2022-10-01 05:45
方法2:日期解析后格式化
如果需要兼容类似格式的微小变动,可借助datetime模块:
from datetime import datetime input_str = "20221001T0545Z" dt_obj = datetime.strptime(input_str, "%Y%m%dT%H%MZ") output_str = dt_obj.strftime("%Y-%m-%d %H:%M") print(output_str) # 输出: 2022-10-01 05:45
JavaScript 实现
方法1:纯字符串处理
const inputStr = "20221001T0545Z"; const outputStr = `${inputStr.slice(0,4)}-${inputStr.slice(4,6)}-${inputStr.slice(6,8)} ${inputStr.slice(9,11)}:${inputStr.slice(11,13)}`; console.log(outputStr); // 输出: 2022-10-01 05:45
方法2:日期对象格式化
const inputStr = "20221001T0545Z"; // 补全为标准ISO格式(添加分钟后的冒号) const isoStr = inputStr.replace(/(\d{2})(Z)$/, ":$1$2"); const dt = new Date(isoStr); const outputStr = `${dt.getFullYear()}-${String(dt.getMonth()+1).padStart(2,'0')}-${String(dt.getDate()).padStart(2,'0')} ${String(dt.getUTCHours()).padStart(2,'0')}:${String(dt.getUTCMinutes()).padStart(2,'0')}`; console.log(outputStr); // 输出: 2022-10-01 05:45
注意事项
- 纯字符串操作性能更高,适合输入格式完全固定的场景;
- 日期解析方式更灵活,可应对格式的细微调整,但需注意时区问题(输入的
Z代表UTC时区,解析时需保持一致)。
内容的提问来源于stack exchange,提问作者Monty
相关产品推荐
相关产品推荐

