如何将数据库返回的ISO时间戳格式化为指定日期时间格式?
格式化ISO时间戳的实用方法
针对你拿到的2022-09-06T07:11:59.002Z格式时间戳,以下是几种主流场景下的格式化方案:
JavaScript 场景
快速字符串截取法
利用时间戳固定格式直接截取目标部分,替换分隔符:
const rawTimestamp = '2022-09-06T07:11:59.002Z'; const formatted = rawTimestamp.slice(0, 10) + ' ' + rawTimestamp.slice(11, 19); console.log(formatted); // 输出:2022-09-06 07:11:59
Date对象格式化法
通过Date对象解析后提取各时间分量,保证格式规范性:
const date = new Date('2022-09-06T07:11:59.002Z'); const formatted = `${date.getUTCFullYear()}-${String(date.getUTCMonth()+1).padStart(2,'0')}-${String(date.getUTCDate()).padStart(2,'0')} ${String(date.getUTCHours()).padStart(2,'0')}:${String(date.getUTCMinutes()).padStart(2,'0')}:${String(date.getUTCSeconds()).padStart(2,'0')}`; console.log(formatted); // 输出:2022-09-06 07:11:59
Python 场景
字符串切片法
简单高效的固定格式截取:
raw_timestamp = '2022-09-06T07:11:59.002Z' formatted = raw_timestamp[:10] + ' ' + raw_timestamp[11:19] print(formatted) # 输出:2022-09-06 07:11:59
Datetime模块解析法
适合需要后续时间操作的场景:
from datetime import datetime raw_timestamp = '2022-09-06T07:11:59.002Z' date_obj = datetime.fromisoformat(raw_timestamp.replace('Z', '+00:00')) formatted = date_obj.strftime('%Y-%m-%d %H:%M:%S') print(formatted) # 输出:2022-09-06 07:11:59
MySQL 数据库场景
直接在查询中完成格式化:
SELECT DATE_FORMAT(STR_TO_DATE('2022-09-06T07:11:59.002Z', '%Y-%m-%dT%H:%i:%s.%fZ'), '%Y-%m-%d %H:%i:%s') AS formatted_time;
执行后将返回目标格式的时间字符串。
内容的提问来源于stack exchange,提问作者xander
相关产品推荐
相关产品推荐

