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

Java如何将日期时间字符串转换为Zulu日期时间格式

转换实现方案

Zulu时间即UTC+0时区时间,转换时需要先明确输入日期2021-09-27 16:32:36对应的所属时区,以下默认以国内常用的东八区(UTC+8)为例演示不同主流开发语言的实现:

Java 8+ 实现

使用官方推荐的java.time包处理,避免旧Date类的时区问题:

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class DateConvertDemo {
    public static void main(String[] args) {
        // 定义输入、输出格式
        DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        DateTimeFormatter zuluFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
        // 按输入所属时区解析时间
        LocalDateTime localTime = LocalDateTime.parse("2021-09-27 16:32:36", inputFormatter);
        ZonedDateTime shanghaiTime = ZonedDateTime.of(localTime, ZoneId.of("Asia/Shanghai"));
        // 转换为UTC时区后格式化
        ZonedDateTime utcTime = shanghaiTime.withZoneSameInstant(ZoneId.of("UTC"));
        String result = utcTime.format(zuluFormatter);
        // 输出结果:2021-09-27T08:32:36.000Z
        System.out.println(result);
    }
}

Python 实现

from datetime import datetime
import pytz

# 按东八区解析输入时间
input_time = datetime.strptime("2021-09-27 16:32:36", "%Y-%m-%d %H:%M:%S").replace(tzinfo=pytz.timezone("Asia/Shanghai"))
# 转UTC时区后格式化,截取前3位毫秒
zulu_time = input_time.astimezone(pytz.UTC).strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + "Z"
# 输出结果:2021-09-27T08:32:36.000Z
print(zulu_time)

JavaScript 实现

// 明确指定输入时间为东八区,避免时区歧义
const inputTime = new Date('2021-09-27T16:32:36+08:00');
// JS内置的toISOString方法直接输出符合要求的Zulu格式
const zuluTime = inputTime.toISOString();
// 输出结果:2021-09-27T08:32:36.000Z
console.log(zuluTime);

注意事项

  • 如果输入时间本身就是UTC时区的,不需要做时区偏移,直接解析后补毫秒和Z后缀即可,输出结果为2021-09-27T16:32:36.000Z
  • 不要直接在原时间字符串后拼接T和Z后缀,会导致时区逻辑错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:03:03