我得到下面的格式發送到我的應用日期:解析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