我有2008-12-23T00:00:00Z
格式的日期。这看起来很像一个带有祖鲁语时区的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
),但删除了时区,则可以正常工作。
你知道我怎么才能认出祖鲁时区吗?我只能访问Java1.4和Jakarta commons-lang。我还没有Joda Time。
发布于 2009-01-08 15:06:40
看起来像是commons-lang的FastDateFormat
中的一个bug。告诉他们这件事,你最终会得到解决的。在此之前,您可以尝试对日期进行预处理,并将“Z”替换为“+00”
发布于 2009-01-08 15:31:50
我认为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");
https://stackoverflow.com/questions/424522
复制相似问题