如何在Java DateUtils.parseDate中识别Zulu时区?
我的日期格式为2008-12-23T00:00:00Z
。 这看起来很像带有祖鲁(UTC)时区的ISO 8601格式 。 我虽然下面的代码会解析它(使用commons-lang ):
String pattern = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.getPattern(); Date d = DateUtils.parseDate(dateToParse, new String[] { pattern });
如果我采用相同的模式( yyyy-MM-dd'T'HH:mm:ssZZ
)但删除时区,它可以工作。
你知道我如何认识祖鲁时区吗? 我只能访问Java 1.4和Jakarta commons-lang。 没有Joda时间对我来说……
看起来像是commons-lang的FastDateFormat
一个错误。 告诉他们,最终你应该得到一个解决方案。 直到那时您可以尝试预处理日期并将’Z’替换为’+00′
我认为commons-lang正在使用java的内置DateFormat或SimpleDateFormat,它会为你的日期抛出ParseException。 如果所有输入字符串都以尾随Z结尾,则可以使用:
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); // explicitly set timezone of input if needed df.setTimeZone(java.util.TimeZone.getTimeZone("Zulu")); java.util.Date date = df.parse("2008-12-23T00:00:00Z");