java - 在Java中将UTC时间戳转换为带有偏移量的时间
问题描述
我有一个 MYSQL UTC 时间戳“2021-07-23 08:13:17”。
我想将其转换为具有偏移的时间,例如“2021-07-21T08:13:17+01:00”。我的代码是:
OffsetDateTime offsetDateTime = OffsetDateTime.parse("2021-07-23 08:13:17", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
offsetDateTime.format(ISO_OFFSET_DATE_TIME).toString();
但是,第一行给出了错误:
Text '2021-07-23 08:13:17' could not be parsed: Unable to obtain OffsetDateTime from TemporalAccessor: {},ISO resolved to 2021-07-23T08:13:17 of type java.time.format.Parsed
我怎样才能做这个简单的转换?
解决方案
您的字符串中没有偏移量,因此它不是OffsetDateTime
. 它只有一个日期和一个时间组件,所以它只是一个LocalDateTime
.
LocalDateTime localDateTime = OffsetDateTime.parse("2021-07-23 08:13:17", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
之后,您可以使用以下方法给它一个偏移量atOffset
:
OffsetDateTime offsetDateTime = localDateTime.atOffset(ZoneOffset.ofHours(1));
推荐阅读
- hubspot - 将文件上传到 hubspot 中的交易
- gitlab - 尝试将 NuGet 包发布到 gitlab.com 时出现错误“无法加载源的服务索引”
- c# - 使用 Google Protoc 编译器时,Process.Start 在 linux 中挂起
- c - C:如何在这个程序中正确地对字符串使用 realloc?
- database - 当用户删除他的帐户时,如何删除不同表中的某个字段?
- python - FastApi Sqlalchemy 如何管理事务(会话和多次提交)
- xamarin - 图像不会在较低的 android 版本 Xamarin Forms 上加载
- python - 在 AWS SageMaker 训练作业上更改模型文件保存位置
- java - 如何使用 javax xml 验证来验证 XML 文件中元素的名称属性
- r - coeftest() 给出了 drc 类对象的错误