Преобразуйте строку в GregorianCalendar

Вам не хватает памяти для процесса сборки Angular.

Попробуйте добавить shm_size: '128m' в раздел build раздела docker-compose.yml

.
17
задан matt b 27 October 2008 в 17:30
поделиться

2 ответа

Я рекомендовал бы изучить библиотеку Joda Time, если это - опция. Я обычно против пользования сторонней библиотекой, когда базовая платформа обеспечивает схожую функциональность, но я сделал это исключением, потому что автор Времени Joda находится также позади JSR310, и Время Joda в основном собирается включиться в Java 7 в конечном счете.

http://joda-time.sourceforge.net/

Так так или иначе, если Время Joda является опцией, что-то вроде этого должно работа:

DateTimeFormatter formatter =
    DateTimeFormat.forPattern("your pattern").withOffsetParsed();
DateTime dateTime = formatter.parseDateTime("your input");
GregorianCalendar cal = dateTime.toGregorianCalendar();

я надеюсь, что это помогает.

15
ответ дан 30 November 2019 в 13:40
поделиться

И для самых быстрых - это не собирается работать правильно..., потому что это нормализует часовой пояс к UTC (или Ваше локальное машинное время, в зависимости от версии Java). То, в чем я нуждаюсь, является calendar.getTimeZone () .getRawOffset () для возврата-7 * milisInAnHour.

Хорошо технически это действительно работает, потому что, в то время как это возвратит объект с TimeZone, равным существующей системе TimeZone, время будет изменено для составления смещения.

Этот код:

String dateString = "Mon, 27 Oct 2008 08:33:29 -0700";
DateFormat df = new SimpleDateFormat("E, dd MMM yyyy hh:mm:ss Z");
Date parsed = df.parse(dateString);
System.out.println("parsed date: " + parsed);

Calendar newCalendar = Calendar.getInstance();
newCalendar.setTime(parsed);

выводы:

проанализированная дата: понедельник 27 октября 2008 EDT 11:33:29

, который технически корректен, так как мой системный часовой пояс является EDT / UTC минус четыре часа (который составляет три часа перед Вашим). Если Вы выражаете время как количество миллисекунд с 1 января 1970, 0:00:00 GMT (который является, как эти Date объектно-ориентированные памяти это - дата/время), то они, дата/времена равна, это - просто TimeZone, который отличается.

Ваша проблема действительно , Как я преобразовываю Дату/Календарь в свой часовой пояс? Для этого, смотрите на мой ответ на предыдущий вопрос , Как обработать календарь TimeZones с помощью Java?

6
ответ дан 30 November 2019 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: