我有格式为2008-12-23T00:00:00Z
的日期。这看起来很像具有祖鲁(UTC)时区的ISO 8601 format。我虽然下面的代码将解析它(使用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 Time对我还...
我认为 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");
看起来像 commons-lang 的FastDateFormat
中的错误。告诉他们,你最终应该得到修复。在那之前,你可以尝试预处理日期并用 '+ 00' 替换 'Z'
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(35条)