我有如下解析日期的代码:
String ALT_DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
SimpleDateFormat sdf = new SimpleDateFormat(
ALT_DATE_TIME_FORMAT);
Date date = sdf.parse(requiredTimeStamp);
它工作正常,突然,它停止工作了。事实证明,管理员在服务器上进行了一些配置更改,当前返回的日期为“2010-12-27T10:50:44.000-08:00”,上述模式无法对其进行解析。我有两个问题:
第一个是什么模式将解析 JVM 以上述格式返回的日期(具体来说,只是“-08:00”作为时区)?其次,在 linux RHEL 5 服务器上究竟应该在哪里更改此类设置,以便我们知道将来会发生此类更改?
原文由 shipmaster 发布,翻译遵循 CC BY-SA 4.0 许可协议
另一个应用程序使用 ISO 8601 日期时间格式。我假设其他应用程序向您发送符合 XML 模式的 dateTime 类型(即 ISO 8601)的 XML 响应。现在,众所周知,DateFormat 无法解析此格式。您要么必须使用其他库,如 joda-time(joda-time 是赢家),要么使用其他响应中指定的 FastDateFormat。看看这篇文章 Converting ISO 8601-compliant String to java.util.Date