Т.Л., д-р
YearWeek.parse("2017-W01")
ISO 8601
Или разобрать какой-то другой формат?
Да, используйте другой формат.
Используйте стандартные форматы ISO 8601 при сериализации значений даты и времени для текста. Стандарт включает support for week dates.
В течение года-недели это будет четыре года, дефис, W
и две цифры за неделю в году.
2017-W01
Получить ясно вашего определения «недели». Определение ISO 8601 является то, что:
- Неделя # 1 содержит первый четверг года, и
- Запускается понедельник-воскресенье.
Таким образом, продолжительность лет 52 или 53 недели. И обратите внимание, что в соответствии с этим определением первые несколько дней года могут быть в предыдущем году, когда нумерация по неделям. Аналогичным образом, последние несколько дней года могут быть в следующем году, когда нумерация по неделям.
Если вы хотите указать конкретный день в течение этой недели, добавьте дефис и цифру с номером 1-7 в понедельник-воскресенье.
Совет. Чтобы увидеть стандартные номера ISO 8601 по умолчанию на вашем компьютере, вам может потребоваться настроить настройку ОС. Например, на macOS установите Системные настройки> Язык & Регион> Календарь> ISO 8601, чтобы приложения, такие как Calendar.app, отображали номера недель с этим стандартным определением.
2017-W01-7
Кстати, пара подобных представлений:
- Порядковый дата означает, год и день-год-номер работает от 1-366 - год, дефис и трехзначное число:
2017-123
- Месяц-день без года - это два дефиса, число месяцев, дефис и число дней в месяце:
--01-07
Обратите внимание, что использование Locale
, как видно из вопроса, здесь не имеет отношения к стандартным форматам ISO 8601.
YearWeek
Unfortunatley нет ни одного объекта, как годМесяц в течение нескольких недель ...
Ааа, но это такого класса.
Для класса, представляющего идею недельного года, см. correct Answer by Henrik. В этом ответе показан класс библиотеки ThreeTen-ExtraYearWeek
.
Класс YearWeek
может непосредственно анализировать и генерировать строки в стандартном формате.
YearWeek yw = YearWeek.parse("2017-W01");
Вы можете сравнить YearWeek
объектов с помощью методов: compareTo
, equals
, isBefore
, isAfter
.
yw.isBefore(thatYw)
ThreeTen-Extra проект предлагает другие классы, такие как YearQuarter
, которые могут оказаться полезными.
Что именно вы называете здесь «неделя»? –