/ / Java dátumy a štandardné formáty - java, dátum

Java dátumy a štandardné formáty - java, dátum

Ako je to tento kód C # od spoločnosti Mircrosoft existuje štandardný formát dátumu, ako je tento:

//       R: Sun, 15 Jun 2008 21:15:07 GMT

Môj kód C # používa r takto:

webRequest.Date.ToUniversalTime().ToString("r")

Ako môžem vytvoriť štandardný formát dátumu, ako je tento v jazyku Java?

Mám to zatiaľ:

this.timestamp = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z").format(new Date());

Ale ja neviem, či by som sa mal pokúsiť napísať niečo, čo sa bude páčiť, alebo či je lepšia cesta. Mojou obavou je, že urobím chybu a niektoré termíny nebudú fungovať.

odpovede:

4 pre odpoveď č. 1

Ako môžem vytvoriť štandardný formát dátumu, ako je tento v jazyku Java?

Pozri na - dokumentáciu pre r formát:

Vlastný formátový reťazec je "ddd, dd MMM yyyy HH": "mm": "ss" GMT "". Keď sa použije tento štandardný špecifikátor formátu, operácia formátovania alebo analýzy vždy používa nemennú kultúru.

[...] Preto aplikácia musí konvertovať hodnotu dátumu a času na UTC skôr, ako vykoná operáciu formátovania

Takže preložte reťazec vlastného formátu SimpleDateFormat, * a uistite sa, že zadáte časové pásmo (UTC) a miestne nastavenie (americká angličtina je dostatočne blízka invariantnej kultúre):

DateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss "GMT"",
Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));
String text = format.format(date);

To je, ak chcete prispôsobiť formát z .NET r Formát. Osobne som namiesto toho chodil s formátom ISO-8601, napr.

DateFormat format = new SimpleDateFormat("yyyy-MM-dd"T"HH:mm:ss.SSS"Z"",
Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));