将字符串转换为 LocalDateTime
Posted
技术标签:
【中文标题】将字符串转换为 LocalDateTime【英文标题】:Convert string into LocalDateTime 【发布时间】:2019-11-27 12:34:12 【问题描述】:我有以下字符串:
18/07/2019 16:20
我尝试使用以下代码将此字符串转换为LocalDateTime
:
val stringDate = expiration_button.text.toString()
val date = LocalDateTime.parse(stringDate, DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm")).toString()
java.time.format.DateTimeParseException:文本'18/07/2019 04:30:00' 无法解析:无法从中获取 LocalDateTime 时间存取器
我错过了什么?
【问题讨论】:
也许这个能帮上忙 -> ***.com/questions/27454025/… DateTimeParseException: Text '2019-06-07 12:18:16' could not be parsed的可能重复 【参考方案1】:我想这会回答你的问题:
val stringDate = expiration_button.text.toString()
val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm");
val dt = LocalDate.parse(stringDate, formatter);
编辑 1:
它可能会崩溃,因为您使用的是 12 小时制,而不是 24 小时制。
通过使用大写 H 将小时模式更改为 24 小时模式应该可以解决此问题:
val dateTime = LocalDateTime.parse(stringDate, DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm"));
【讨论】:
它适用于 LocalDate,但我需要 LocalDateTime,因为这样我会浪费时间。如果我将 LocalDate 更改为 LocalDateTime 它会崩溃。 我已经编辑了我的答案,请告诉我进展如何。 问题在于时间。我有hh
而不是HH
。谢谢!【参考方案2】:
使用下面将时间从 String 转换为 LocalDateTime,但请确保您以 String 形式获取时间。
String str = "2016-03-04 11:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
顺便说一句,如果您的字符串包含秒以及“2016-03-04 11:30:40”,那么您可以将日期时间格式更改为 yyyy-MM-dd HH:mm:ss”,如下所示:
String str = "2016-03-04 11:30: 40";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
【讨论】:
【参考方案3】:将您的日期时间格式更改为 "dd/MM/yyyy hh:mm a"
并提供带有附加 AM/PM 信息的字符串日期,例如val stringDate = "18/07/2019 04:20 PM"
或仅使用 24 小时格式 "dd/MM/yyyy HH:mm"
。
【讨论】:
如果一方面给出了字符串18/07/2019 16:20
,那么以这种方式修改它并非易事。另一方面,如果有可能获得不同的字符串,我建议在ISO 8601 format 中使用一个字符串,所以2019-07-18T16:20
。 LocalDateTime
将在没有任何显式格式化程序的情况下解析这样的字符串,从而简化事情。【参考方案4】:
您可以尝试在日期上使用“-”而不是“/”。
【讨论】:
以上是关于将字符串转换为 LocalDateTime的主要内容,如果未能解决你的问题,请参考以下文章
如何在不将 LocalDateTime 字段转换为扩展的 json 对象的情况下将 java 对象转换为简单的 json 字符串?
java8日期时间API的一些使用 | 转字符串 | 格式化等
java8日期时间API的一些使用 | 转字符串 | 格式化等