JodaTime的
DateTimeFormat救援:
String dateString = "2010-03-01T00:00:00-08:00";String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";DateTimeFormatter dtf = DateTimeFormat.forPattern(pattern);DateTime dateTime = dtf.parseDateTime(dateString);System.out.println(dateTime); // 2010-03-01T04:00:00.000-04:00
(时区和时区的差异toString()仅是因为我在GMT-4,并且没有明确设置语言环境)
如果要结束
java.util.Date使用
DateTime#toDate():
Date date = dateTime.toDate();
等待JDK7(JSR-310) JSR-310,如果你想在标准Java SE API中使用更好的格式化程序,则引用实现称为ThreeTen(希望它将实现到Java 8中)。
SimpleDateFormat在时区表示法中,当前确实不会吃掉冒号。
更新:根据更新,你显然不需要时区。这应该与
SimpleDateFormat。只需Z在模式中忽略它。
String dateString = "2010-03-01T00:00:00-08:00";String pattern = "yyyy-MM-dd'T'HH:mm:ss";SimpleDateFormat sdf = new SimpleDateFormat(pattern);Date date = sdf.parse(dateString);System.out.println(date); // Mon Mar 01 00:00:00 BOT 2010
(根据我的时区是正确的)



