Ich bin mir bewusst, dass es mehrere Fragen gibt. Aber ich habe ein Problem mit einem bestimmten Datumsmuster. Hier ein Beispiel:Zeitzone aus String extrahieren
20130401100000[-03:EST]
Ich habe troble mit den -03
weil nach der SimpleDateFormat
Dokumentation sollte es 4 Stellen hat. Das nächstgelegene Muster ich es habe, war dies:
yyyyMMddHHmmss'['Z':'z']'
Aber wegen der 2-stellig es einfach nicht funktionieren. Hier ist ein Codebeispiel I für Tests bin mit:
public static void main(String[] args) throws ParseException {
String input = "20130401100000[-03:EST]";
DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss'['Z':'z']'");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(df.format(new Date()));
System.out.println(df.parse(input));
}
Wenn ich drucke die new Date()
ich dieses:
20130528155734[+0000:GMT]
Aber wenn ich versuche, das Parsen der input
ich die folgende Ausnahme erhalten:
Exception in thread "main" java.text.ParseException: Unparseable date: "20130401100000[-03:EST]"
at java.text.DateFormat.parse(DateFormat.java:337)
at Teste.main(Teste.java:17)
Weiß jemand, wie ich die input
in eine Date
mit der richtigen TimeZone
analysieren kann?
ich die Lösung mit 'replaceAll' mag, scheint elegant. Vielen Dank :-) –