猿问

以 mm/dd/yyyy HH:mm-HH-mm 格式将字符串转换为日期

我在字符串变量中有一个格式为 07/18/2018 01:00-04:00 CDT 的日期。其中 01:00-04:00 是一个时间范围。我需要将其转换为两个单独的变量中的日期格式,并记住时区。

Var1 应该有 07/18/2018 01:00 CDT Var2 应该有 07/18/2018 04:00 CDT

我应该标记这个字符串并在 01:00-04:00 分开吗?或者在 simpleDateParser 中有没有办法做到这一点?


手掌心
浏览 182回答 2
2回答

明月笑刀无情

问题是您拥有的不是日期时间。它是一个区间。日期时间格式化程序将无法处理它。格式化程序 API 生成一个Date对象(用于遗留DateFormat类)或一个TemporalAccessor对象(用于DateTimeFormatter)。当前或遗留 Java 日期/时间 API 中都没有对间隔的直接支持。鉴于格式/格式化程序类不能返回间隔,格式字符串不支持这个1也就不足为奇了。所以,唯一的选择是自己做一些解析/字符串攻击。@Sun 的答案是一种解决方案。1 - 如果您可以编写一个格式/格式化程序模式来告诉解析器“忽略接下来的 5 个字符”,例如,您可以创建两个不同的格式化程序来解析您的示例以提取第一个日期时间和第二个日期时间。但你不能。一个原因是这种方法不适用于格式化。
随时随地看视频慕课网APP

相关分类

Java
我要回答