java - 将日期和时间更改为 UTC 格式
问题描述
我输入了日期和时间“2021-05-03T15:46:09.354+08:00”
我想要 UTC 格式输出 - “2021-05-03T07:46:09.354Z”
任何想法和建议
解决方案
输入字符串适合一个OffsetDateTime
,输出字符串适合一个Instant
,所以:
Instant instant = OffsetDateTime.parse("2021-05-03T15:46:09.354+08:00").toInstant();
System.out.println(instant); // prints: 2021-05-03T07:46:09.354Z
您也可以使用ZonedDateTime
,结果也可以是OffsetDateTime
或ZonedDateTime
。
ZonedDateTime inZoned = ZonedDateTime.parse("2021-05-03T15:46:09.354+08:00");
ZonedDateTime outZoned = inZoned.withZoneSameInstant(ZoneOffset.UTC);
System.out.println(inZoned + " -> " + outZoned);
// prints: 2021-05-03T15:46:09.354+08:00 -> 2021-05-03T07:46:09.354Z
OffsetDateTime inOffset = inZoned.toOffsetDateTime();
OffsetDateTime outOffset = inOffset.withOffsetSameInstant(ZoneOffset.UTC);
System.out.println(inOffset + " -> " + outOffset);
// prints: 2021-05-03T15:46:09.354+08:00 -> 2021-05-03T07:46:09.354Z
推荐阅读
- vb.net - VB.NET 2019 从另一个表单打开一个表单
- sqlite - 为什么这个简单的 go sqlite 语句有时需要 5 秒?
- php - 在laravel中登录后视图未加载
- python - 如何单击(一个 React 元素)一个直到被检查看到才可见的按钮(Ctrl + Shift + I)
- spring - Spring 过滤器链 - antMatchers(...).authenticated() 未强制执行
- javascript - 动态地将组件标记传递给 Vue 实例
- python - gdal.Translate 缺少的空间参考系统
- python - Numpy Newaxis 不适用于日期时间列
- excel - VBA Excel 工作簿在尝试使用语法错误的 vba 保护它时被锁定
- php - PHP array_pop & implode 与外语一起使用时显示问号