【发布时间】:2019-07-24 03:07:47
【问题描述】:
我最近需要获取一个字符串并将其转换为 Java 中的 LocalDate 变量;我知道这是可能且简单的,但这是我没有看到的:
上下文:我正在使用 exiftool 通过 Java 运行时执行从图像中提取元数据。 问题是 exiftool 提供了下一个字符串:
2019:02:28 11:37:47-06:00
这不是您通常的标准 ISO 格式(或者至少我认为不是)。我不知道这是否使用了任何已经实现的格式标准。 因此,为了解决我的问题,我创建了下一个用于手动解析的代码:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy:MM:dd HH:mm:ssZ", Locale.ENGLISH);
LocalDate date = LocalDate.parse(VAR_WITH_STR_TO_CONVERT, formatter);
我认为这是手动转换的一个很好的实现,但是这段代码会生成下一个异常:
> Text '2019:02:28 11:37:47-06:00' could not be parsed at index 19
at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source)
at java.time.format.DateTimeFormatter.parse(Unknown Source)
at java.time.LocalDate.parse(Unknown Source)
我认为问题在于我提供要转换的格式字符串,但是在检查 DateTimeFormatter 文档后,我认为我有正确的字符串。
yyyy:MM:dd HH:mm:ssZ
我没有想法,有人知道这里的问题吗?
【问题讨论】:
标签: java date datetime localdate