如何在Java DateUtils.parseDate中识别Zulu时区?

如何在Java DateUtils.parseDate中识别Zulu时区?,java,date,parsing,timezone,Java,Date,Parsing,Timezone,我的日期格式为2008-12-23T00:00:00Z。这看起来很像一个有祖鲁(UTC)时区的城市。我认为下面的代码将解析它(使用): 如果我采用相同的模式(yyyy-MM-dd'T'HH:MM:ssZZ),但删除了时区,它就会工作 你知道我怎么能认出祖鲁时区吗?我只能访问Java 1.4和Jakarta commons-lang。对我来说还没有…看起来像commons-lang的FastDateFormat中的一个bug。告诉他们这件事,你最终应该得到解决。在此之前,您可以尝试预处理日期并将“

我的日期格式为
2008-12-23T00:00:00Z
。这看起来很像一个有祖鲁(UTC)时区的城市。我认为下面的代码将解析它(使用):

如果我采用相同的模式(
yyyy-MM-dd'T'HH:MM:ssZZ
),但删除了时区,它就会工作


你知道我怎么能认出祖鲁时区吗?我只能访问Java 1.4和Jakarta commons-lang。对我来说还没有…

看起来像commons-lang的
FastDateFormat
中的一个bug。告诉他们这件事,你最终应该得到解决。在此之前,您可以尝试预处理日期并将“Z”替换为“+00”

我认为commons lang使用的是java内置的DateFormat或SimpleDataFormat,它会为您的日期抛出ParseException。如果所有输入字符串都以结尾的Z结尾,则可以使用:


java.text.DateFormat df=new java.text.simpleDataFormat(“yyyy-MM-dd'T'HH:MM:ss'Z'”);
//如果需要,显式设置输入的时区
setTimeZone(java.util.TimeZone.getTimeZone(“Zulu”);
java.util.Date=df.parse(“2008-12-23T00:00:00Z”);

好的,我试试看。几年前,我无法升级到commons lang的新版本;-)但它可能会帮助其他人…+1。。。当我不使用JodaTime的时候,我总是要查这些废话
String pattern = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.getPattern();
Date d = DateUtils.parseDate(dateToParse, new String[] { pattern });

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");