如何将日期格式从2024-06-12 12:24:06.157转换为2035-12-11T19:28:00Z?
日期格式转换方案:从
YYYY-MM-DD HH:MM:SS.sss到ISO 8601 UTC格式 要把2024-06-12 12:24:06.157这类格式转换为2035-12-11T19:28:00Z(ISO 8601 UTC标准格式),核心是完成「解析原始日期→转换为UTC时区→格式化输出」三个步骤,以下是主流编程语言的实现方式:
Python实现
from datetime import datetime, timezone # 解析原始日期字符串 original_dt = datetime.strptime("2024-06-12 12:24:06.157", "%Y-%m-%d %H:%M:%S.%f") # 转换为UTC时区(若原始时间为本地时区,需先指定本地时区再转UTC) utc_dt = original_dt.replace(tzinfo=timezone.utc) # 格式化为目标格式(截断毫秒到秒) formatted_str = utc_dt.strftime("%Y-%m-%dT%H:%M:%SZ") print(formatted_str)
注:如果原始时间是本地时区,可借助pytz库指定本地时区后再转换为UTC。
JavaScript实现
// 解析原始日期(注意:若原始时间为本地时区,需确保构造函数正确识别) const originalDate = new Date("2024-06-12 12:24:06.157"); // 直接生成ISO 8601 UTC格式字符串,自动处理时区转换 const isoStr = originalDate.toISOString(); // 截断毫秒部分(目标示例无毫秒) const formattedStr = isoStr.slice(0, 19) + "Z"; console.log(formattedStr);
Java实现
import java.time.LocalDateTime; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; public class DateConvertDemo { public static void main(String[] args) { // 定义输入格式解析器 DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); // 解析原始日期字符串 LocalDateTime localDt = LocalDateTime.parse("2024-06-12 12:24:06.157", inputFormatter); // 转换为UTC并格式化为目标格式 String formattedStr = localDt.atOffset(ZoneOffset.UTC) .format(DateTimeFormatter.ISO_INSTANT) .replace(".000", ""); System.out.println(formattedStr); } }
关键注意点
- 必须明确原始日期的时区:如果原始时间是本地时区而非UTC,转换时需先指定原始时区,再转UTC,否则会出现时间偏移错误。
- 毫秒处理:目标格式示例无毫秒,需根据需求选择保留或截断毫秒部分。
内容的提问来源于stack exchange,提问作者Rajat
相关产品推荐
相关产品推荐

