SimpleDateFormat

Genslus

Mitglied
Hallo Community,

ich habe ein Problem mit dem SimpleDateFormat bzw. dem Format an sich.

Ich möchte folgende Datumsformatierung erreichen: "2010-12-17T10:57:50+01:00". Das Problem dabei ist das "+01:00" am Ende.

Zur Zeit verwende ich:
Java:
String date = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ").format(new Date());

Allerdings bringt mir das "Z" am Ende folgendes: "2010-12-17T10:57:50+0100". Also fehlt da der Doppelpunkt. Habe auch schon Z:Z, ZZ, ZZ:ZZ versucht. Aber alles vergebens.

Hat jemand eine Idee wie ich das schnell und unkompliziert so hin bekomme?

Danke und Gruß
 

Niki

Top Contributor
ich hab auf die schnelle auch keine passende Möglichkeit im SimpleDateFormat gefunden. Ich würd mir die Klasse TimeZone anschauen und dann halt selber die TimeZone so parsen wie du es brauchst.
 

tagedieb

Top Contributor
Geht leider nicht.
Das 'Z' Format ist fix und kann auch nicht geaendert oder ueberschrieben werden.
Siehe SimpleDateFormat.java

Java:
    /**
     * Private member function that does the real date/time formatting.
     */
    private void subFormat(int patternCharIndex, int count,
			   FieldDelegate delegate, StringBuffer buffer,
			   boolean useDateFormatSymbols)
    {
      .
      .
        case 18: // 'Z' - ZONE_OFFSET ("-/+hhmm" form)
            value = (calendar.get(Calendar.ZONE_OFFSET) +
		     calendar.get(Calendar.DST_OFFSET)) / 60000;

	    int width = 4;
            if (value >= 0) {
		buffer.append('+');
	    } else {
                width++;
            }

            int num = (value / 60) * 100 + (value % 60);
	    CalendarUtils.sprintf0d(buffer, num, width);
            break;

Wozu brauchst du den ':' ?
Ich meine hierbei handelt es sich ja nicht um ein benuzerfreundliches Format. Wenn es keine Rolle spielt wuerde ich beim 'Standard' bleiben und nicht einen eigenen komplizierten Code schreiben.

In der Softwareentwicklung rechnet man, dass die letzten 10% der Software 90% der Zeit kosten.
Also abwaegen ob sich der Aufwand wirklich lohnt :D
 

madboy

Top Contributor
Hat jemand eine Idee wie ich das schnell und unkompliziert so hin bekomme?
Schnell und unkompliziert, aber nicht schön ;-)
Java:
String date = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ").format(new Date());
date = date.substring(0, date.length() - 2) + ":" + date.substring(date.length() - 2, date.length());
 
S

SlaterB

Gast
Optimierung der zweiten Zeile:
Java:
date = new StringBuilder(date).insert(date.length() - 2, ":").toString();
;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A SimpleDateFormat Wochentag Monat Allgemeine Java-Themen 11
B SimpleDateFormat oder doch lieber GregorianCalendar Allgemeine Java-Themen 3
L Validierung einer Zeichenkette für SimpleDateFormat Allgemeine Java-Themen 10
E SimpleDateFormat-Konvertierung funktioniert nicht Allgemeine Java-Themen 3
Grejak Date und SimpleDateFormat Allgemeine Java-Themen 6
R SimpleDateFormat Allgemeine Java-Themen 8
K SimpleDateFormat Fehler Allgemeine Java-Themen 3
T SimpleDateFormat.parse() liefert falschen Tag Allgemeine Java-Themen 2
D Klassen Zeit aus NMEA-Stream in SimpleDateFormat Allgemeine Java-Themen 17
N SimpleDateFormat: Unparseable date Allgemeine Java-Themen 5
G SimpleDateFormat Allgemeine Java-Themen 10
H2SO3- String(pattern) von SimpleDateFormat auslesen Allgemeine Java-Themen 7
A String zu Datum parsen - SimpleDateFormat Problem Allgemeine Java-Themen 8
I SimpleDateFormat Allgemeine Java-Themen 8
P SimpleDateFormat/Date Allgemeine Java-Themen 4
RaoulDuke Problem mit SimpleDateFormat Allgemeine Java-Themen 4
E XML dateTime String in Date mit SimpleDateFormat umwandeln Allgemeine Java-Themen 5
B SimpleDateFormat fehler? Allgemeine Java-Themen 2
thE_29 SimpleDateFormat ? Allgemeine Java-Themen 14
G SimpleDateFormat Allgemeine Java-Themen 5
G SimpleDateFormat und Locale Allgemeine Java-Themen 10
N Problem mit SimpleDateFormat Allgemeine Java-Themen 14

Ähnliche Java Themen

Neue Themen


Oben