Как интерпретировать эти метки времени? - PullRequest
3 голосов
/ 12 октября 2009

Я пытаюсь разобрать метки времени, записанные в некоторых XML-файлах. Большинство отметок времени - что-то вроде 2009-07-22-07: 00 , но иногда я нахожу их что-то вроде 2009-07-22Z или 2009-07 -22z . Пожалуйста, помогите мне, как интерпретировать эти Zs и как их анализировать. Я думаю, что эти z или Z связаны с часовым поясом. Какие-нибудь обходные пути, чтобы разобрать их так же, как типичные метки времени?

Ответы [ 4 ]

7 голосов
/ 12 октября 2009

Добавление к ответу fvu: к сожалению, в Java нет встроенного метода для анализа (или форматирования формата даты и времени ISO8601), и, к сожалению, анализировать даты ISO8601 с помощью java.text.SimpleDateFormat (к сожалению) невозможно (легко).

Известная и популярная библиотека Joda Time имеет хорошую поддержку дат и времени ISO8601.

Редактировать : Начиная с Java 5, в стандартном API есть классы для анализа и форматирования даты и времени в стандартном формате, часто используемом в документах XML. Для разбора даты:

import java.util.Calendar;
import java.util.Date;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

// ...

String dateString = "..."; // wherever you get this from
XMLGregorianCalendar xcal = DatatypeFactory.newInstance().newXMLGregorianCalendar(dateString);

Calendar cal = xcal.toGregorianCalendar();
Date date = cal.getTime();

Аналогично существуют методы для форматирования дат в строки. Подробности смотрите в документации API этих классов.

5 голосов
/ 12 октября 2009

Ты прав. Завершающий символ относится к часовому поясу.

Z обозначает часовой пояс "Zulu", который является просто сокращением для часового пояса UTC (или GMT).

Вы также можете увидеть трейлинг + X или -X. Они относятся к смещению GMT для отметки времени. например 2002-05-30+06:00 означает, что время составляет GMT + 6 часов и ноль минут.

5 голосов
/ 12 октября 2009

Z означает зулу. Вы правы, он представляет часовой пояс - в частности, UTC .

1 голос
/ 12 октября 2009

XML использует ISO8601 форматы времени, так что стандарт - это первое место для поиска всех вещей, связанных с временем в XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...