/ / Java Дати и стандартни формати - java, дата

Java дати и стандартни формати - java, дата

Според този C # код от Mircrosoft има стандартен формат за дата като този:

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

Моят C # код използва "r" така:

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

Как мога да създам стандартен формат за дата като този в Java?

Имам това досега:

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

Но не знам дали трябва да се опитам да напиша нещо, което да съответства на него, или ако има по-добър начин. Страхът ми е, че ще направя грешка и някои дати няма да работят.

Отговори:

4 за отговор № 1

Как мога да създам стандартен формат за дата като този в Java?

Погледни документацията за r формат:

Поредицата за персонализиран формат е "ddd, dd MMM yyyy HH": "mm": "ss" GMT ". Когато се използва този спецификатор на стандартен формат, операцията по форматиране или разбор винаги използва инвариантната култура.

[...] Следователно, приложението трябва да конвертира стойността на датата и часа в UTC, преди да извърши операцията по форматиране

Така превеждате този персонализиран формат в SimpleDateFormat, * и се уверете, че сте задали часовата зона (UTC) и локал (американският английски е достатъчно близък до неизменната култура):

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

Това е, ако искате да съответства на формата от .NET r формат. Аз лично ще използвам формат ISO-8601, напр.

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