Самый простой способ разобрать дату в формате String в GregorianCalendar - PullRequest
2 голосов
/ 27 ноября 2011

У меня есть следующая дата:

2011-10-07T08:51:52.006Z

Теперь я хочу разобрать его в GregorianCalendar. Есть ли более простой способ сделать это, чем использовать подстроки и анализировать их как целые числа?

А что за Z во временной строке?

Я попытался разобрать его с помощью SimpleDateFormat, но не могу найти объяснение для T в строке даты.

Ответы [ 3 ]

7 голосов
/ 27 ноября 2011
DateFormat format = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" )
Date       date = format.parse( "2011-10-07T08:51:52.006Z" );
Calendar   calendar = new GregorianCalendar();

calendar.setTime( date );
2 голосов
/ 27 ноября 2011

Я бы взглянул на DateTimeFormatter

DateTimeFormatter formatter =
    DateTimeFormat.forPattern("<custom_pattern>").withOffsetParsed();
DateTime dateTime = formatter.parseDateTime("<your_input>");
GregorianCalendar cal = dateTime.toGregorianCalendar();

T в вашей строке действует как разделитель между датой и временем, а Z - это информация о часовом поясе согласно Формат ISO-8601 .

1 голос
/ 27 ноября 2011

Вы можете использовать SimpleDateFormatter для анализа строки. Пожалуйста, прочитайте Javadoc для вышеупомянутого класса, чтобы узнать, что может быть строкой формата. «Z» обозначает информацию о часовом поясе.

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