提问人:amlwin 提问时间:6/1/2018 最后编辑:Anonymousamlwin 更新时间:12/31/2019 访问量:864
如何使用 ThreeTenABP 将 java.util.Date 更改为 ISO 字符串
How can I change java.util.Date to ISO String using ThreeTenABP
问:
我正在使用ThreeTenABP来转换Android的日期时间。
我的问题是我怎样才能通过ThreeTenABP将a更改为ISO字符串(格式是)?java.util.Date
2018-05-24T02:33:10.062Z
答:
1赞
Kimses
6/1/2018
#1
我不知道android,但如果可用,您可以执行以下操作:java.text.SimpleDateFormat
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(new Date())
评论
0赞
amlwin
6/1/2018
目前你的答案适合我。但我也需要threetenabp
1赞
Meno Hochschild
6/1/2018
转义模式字母“Z”是一个严重的错误,会导致错误的数据。但是使用模式字母“X”是一个不错的选择。
0赞
Anonymous
6/1/2018
有一种方法可以获取具有正确时间和 with 的字符串(至少如果您的 Android API 级别足够高),但这并不简单。由于既过时又臭名昭著,我宁愿不打扰,而是使用 Meno Hochschild 的好答案。Z
SimpleDateFormat
SimpleDateFormat
0赞
Kimses
6/1/2018
是的,当然最好在格式上设置时区。下次我在发布答案时会更加谨慎。
4赞
Meno Hochschild
6/1/2018
#2
ThreetenABP解决方案可以如下所示:
java.util.Date d = ...;
org.threeten.bp.Instant instant = org.threeten.bp.DateTimeUtils.toInstant(d);
String iso = instant.toString();
如果您希望更好地控制格式,则可以将即时转换为(或更好地转换为 OffsetDateTime)并使用专用的 .ZonedDateTime
DateTimeFormatter
评论
0赞
amlwin
6/4/2018
你也拯救了我的一天。这是我的问题更相关的答案
0赞
Meno Hochschild
6/4/2018
@OleV.V.我同意使用固定偏移量,因此类型在这里是自然的选择。已相应地调整了答案。OffsetDateTime
0赞
Алексей Виноградов
12/31/2019
#3
表达:
new Date().toInstant().toString()
结果
2019-12-31T06:32:37.997Z
评论