我得到下面的格式发送到我的应用日期:解析Java中的日期有一个奇怪的时区
yyyy-MM-dd'T'HH:mm:ss.SSS-04:00
的问题是时区,这并不在Z格式(-0400 )并且它不遵循z格式(GMT-04:00)。
是否有另一种格式选项我失踪或我可以输入一种方法来解析这些时区?
我得到下面的格式发送到我的应用日期:解析Java中的日期有一个奇怪的时区
yyyy-MM-dd'T'HH:mm:ss.SSS-04:00
的问题是时区,这并不在Z格式(-0400 )并且它不遵循z格式(GMT-04:00)。
是否有另一种格式选项我失踪或我可以输入一种方法来解析这些时区?
幼稚的方法是快速发展和简单。
class TimeTest {
public static void main(String[] args) {
String s = "yyyy-MM-dd'T'HH:mm:ss.SSS-04:00";
String t = "yyyy-MM-dd'T'HH:mm:ss.SSS-0400";
System.out.println(s + " --> " + fix(s));
System.out.println(t + " --> " + fix(t));
}
static String fix(String s) {
int last = s.lastIndexOf(":");
if(last == s.length() - 3) {
s = s.substring(0,last) + s.substring(last+1);
}
return s;
}
}
你似乎得到一个XSD DateTime格式。如果您想坚持使用纯粹的Java,请查看javax.xml.datatype.XMLGregorianCalendar,它是为处理这类事情而构建的。
但正如另一张海报所说,你可能会更容易使用第三方库,如乔达时间。 Java日历对象总是有点麻烦。
这是一致的行为?如果是这样,你可以使用正则表达式来重新格式化字符串。 – 2011-04-06 19:17:26