解析与Java截断时区信息日期(Parsing Java dates with truncated

2019-09-24 06:37发布

请看下面的日期字符串

  • 2012-10-01 01:02:03.004+0500

这是使用以下在Java中公认SimpleDateFormat模式:

  • yyyy-MM-dd HH:mm:ss.SSSZ

然而,如果所述时区信息上述被截断为2位,即,像

  • 2012-10-01 01:02:03.004+05

日期字符串不符合任何有效的格式,所以没有SimpleDateFormat可能,为了正确分析使用模式。

是否有正确解析截断时区不串预处理任何解决方法吗?

如果不是,这正则表达式将是最佳的为大量这样日期字符串在1轮进行的是预处理,例如使用replaceFirst()在此调用,因为类似的问题 ?

Answer 1:

我不知道没有串预处理一个很好的解决方案,但如果replaceFirst是可以接受的,您可以使用此代码片段:

dateStr.replaceFirst("(?<=[+-]\\d\\d)$", "00")

此代码附加两个零到结尾的字符串<plus|minus><digit><digit> ( 链接到ideone )。



文章来源: Parsing Java dates with truncated timezone information