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

时间:2018-09-27 07:41:45

标签: java datetime date-parsing

我在String变量中有一个格式为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中有办法解决这个问题?

2 个答案:

答案 0 :(得分:2)

我有一个字符串变量中CDT格式为07/18/2018 01:00-04:00的日期。

由于输入的字符串不是标准日期/时间格式,因此您需要将字符串拆分为两个字符串,然后分别进行解析:

color = "black"

答案 1 :(得分:1)

问题在于您拥有的不是日期时间。这是一个间隔。日期时间格式化程序将无法对其进行处理。格式器API产生Date对象(用于旧版DateFormat类)或TemporalAccessor对象(用于DateTimeFormatter)。当前或旧版Java日期/时间API中均不直接支持间隔。

鉴于format / formatter类无法返回间隔,因此格式字符串不支持this 1 也就不足为奇了。

因此,唯一的选择是自己进行一些解析/字符串重击。 @Sun的答案是一种解决方案。


1-例如,如果您可以编写一个格式/格式化程序模式来告诉解析器“忽略接下来的5个字符”,则可以创建两个不同的格式化程序来解析示例以提取第一个日期时间和第二个日期时间约会时间。但是你不能。原因之一是这种方法不适用于格式化。