java - 无法从 TemporalAccessor 获取 ZonedDateTime:
问题描述
我有以下格式的日期,我需要对其进行解析并转换为纪元时间。
2018-11-08 08:17:18.696124
我有以下代码。
String dateString = "2018-11-08 08:17:18.696124";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
ZonedDateTime dateTime = ZonedDateTime.parse(dateString, fmt);
当我运行时,我收到以下错误。
无法解析文本“2018-11-08 08:17:18.696124”:无法从 TemporalAccessor 获取 ZonedDateTime:{},ISO 解析为 java.time.format.Parsed 类型的 2018-11-08T08:17:18.696124
对我在这里做错了什么有任何帮助吗?
解决方案
顾名思义,分区日期时间需要一个区域。您的时间戳格式不包括一个,因此解析失败。
您应该解析为 aLocalDateTime
然后应用正确的区域。例如:
String dateString = "2018-11-08 08:17:18.696124";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
LocalDateTime dateTime = LocalDateTime.parse(dateString, fmt);
ZonedDateTime london = dateTime.atZone(ZoneId.of("Europe/London"));
推荐阅读
- python - 为什么使用 numpy.random.seed 不是一个好习惯?
- django - Django Rest Framework 使用 SerializerMethodField 返回相对路径而不是完整 url
- html - 如何更改css过渡开始?
- xamarin.forms - Prism Forms 不再有 OnNavigatingTo。如何在 Views 的构造函数之前运行一些代码?
- ruby-on-rails - 如何添加可以在 database.yml 中使用的辅助方法?
- c# - 如何在 Unity android 项目中制作自定义 Firebase 事件?
- r - 每个面板中 facet_grid 中的唯一 y 轴(行和列)
- block - 阻止我的 vps 通过 sshd 连接到其他 vps/ip/port
- azure-devops - 在 Azure DevOps 的不同存储库中更新 NuGet 参考
- css - 只有当另一个元素应用了不同的类时,是否有唯一的 CSS 方法来隐藏元素?