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

如何使用ThreeTenABP将java.util.Date转换为ISO格式字符串

使用ThreeTenABP将java.util.Date转换为指定ISO格式字符串

嗨,刚好我在Android项目里用ThreeTenABP处理过一模一样的日期转换需求,给你梳理下具体步骤,超简单的:

第一步:确保项目已引入ThreeTenABP并初始化

如果还没配置依赖,先在你的app模块的build.gradle里添加:

implementation 'com.jakewharton.threetenabp:threetenabp:1.4.0'

然后在你的Application类的onCreate()方法里完成初始化(这步必须做,不然运行时会抛出异常):

@Override
public void onCreate() {
    super.onCreate();
    AndroidThreeTen.init(this);
}

第二步:核心转换代码

java.util.Date本质上就是一个时间戳,我们只需要把它转换成ThreeTenABP里的Instant(代表UTC时间线上的一个瞬间),再用官方内置的格式化器直接生成目标格式:

// 假设你已经有一个待转换的java.util.Date对象
Date yourDate = new Date();

// 将Date转换为ThreeTenABP的Instant类型
Instant instant = yourDate.toInstant();

// 使用ISO_INSTANT格式化器生成符合要求的字符串
String isoFormattedString = DateTimeFormatter.ISO_INSTANT.format(instant);

这样得到的isoFormattedString就是你要的2018-05-24T02:33:10.062Z这种格式。

额外说明

  • DateTimeFormatter.ISO_INSTANT是ThreeTenABP内置的格式化器,专门处理UTC时区的ISO 8601格式,自动添加Z后缀(代表Zulu时间,也就是UTC标准时间),还会保留毫秒级精度,完美匹配你的需求。
  • 不管你的原始Date对象是基于哪个时区的,toInstant()都会自动转换为UTC时间,所以最终输出的字符串始终是UTC标准格式,完全符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:56:37