Android Formatieren Sie das Datum mit der Zeitzone

7

Ich muss das Datum in eine bestimmte Zeichenfolge formatieren.

Ich habe SimpleDateFormat class verwendet, um das Datum mit dem Muster " yyyy-MM-dd'T'HH:mm:ssZ " zu formatieren. Es wird das aktuelle Datum als
zurückgegeben " 2013-01-04T15:51:45+0530 " aber ich brauche als
" 2013-01-04T15:51:45+05:30 ".

Unten ist die Codierung,

%Vor%

Ausgabe : formatierter String: 2013-01-04T15:51:45+0530

Ich brauche das Format als 2013-01-04T15:51:45+05:30 nur den Doppelpunkt zwischen gmt Zeit hinzufügen.

Da ich gerade an einem Google-Kalender arbeite, um ein Ereignis einzufügen, akzeptiert es nur das erforderliche Format, das ich erwähnt habe.

    
fargath 04.01.2013, 12:47
quelle

7 Antworten

9

Sie können stattdessen Joda Time verwenden. Sein DateTimeFormat hat ein ZZ -Formatattribut, das tut, was Sie wollen.

Link

Großer Vorteil: Im Gegensatz zu SimpleDateFormat ist DateTimeFormatter threadsicher. Verwendung:

%Vor%     
fge 04.01.2013, 12:53
quelle
24

Sie können auch "ZZZZZ" anstelle von "Z" in Ihrem Muster verwenden (gemäß Dokumentation ). So etwas Ähnliches

%Vor%     
Grimmy 05.08.2015 11:03
quelle
1

Was Sie tun können, ist einfach das ":" manuell mit substring () hinzuzufügen. Ich habe das früher gesehen und diese Lösung funktioniert.

    
TechSpellBound 04.01.2013 12:56
quelle
1

Warum nicht einfach manuell mit regexp?

%Vor%

Gleiches Ergebnis mit Teilzeichenfolge (wenn Leistung ein Problem ist).

%Vor%     
Gal 04.01.2013 13:00
quelle
1

Versuchen Sie es

%Vor%     
Faizan 04.01.2013 12:59
quelle
0

Probieren Sie diesen Code

aus %Vor%     
Pratik 04.01.2013 13:02
quelle
0

Refaktorieren Sie einfach diesen Code und ersetzen Sie 'Locale.getDefault ()' durch das Locale, das Sie brauchen

%Vor%

// Und hier ist die Verwendung

SimpleDateFormat sdf = getDateFormat ();

sdf.format (neues Datum ());

    
user2288580 03.09.2017 22:03
quelle