Т.Л., д-р
LocalDate.now(ZoneId.of("America/Montreal")) // Today's date in a particular time zone.
.getDayOfYear() // Returns day-of-year (1-366).
Подробности
Другие ответы с Calendar
класса устарели. Нерешенные старые классы времени, такие как java.util.Date
, java.util.Calendar
и java.text.SimpleTextFormat
, теперь legacy, вытесненные классами java.time.
Использование java.time
LocalDate
класс представляет собой дату только значение без времени суток и без временной зоны.
Часовой пояс имеет решающее значение для определения даты. В любой данный момент дата изменяется по всему миру по зонам. Например, через несколько минут после полуночи в Paris France - это новый день, пока еще «вчера» в Montréal Québec.
Указать proper time zone name в формате continent/region
, такие как America/Montreal
, Africa/Casablanca
или Pacific/Auckland
. Никогда не используйте аббревиатуру 3-4 буквы, такую как EST
или IST
, так как они не настоящие часовые пояса, не стандартизированные, и даже не уникальные (!).
ZoneId z = ZoneId.of("America/Montreal");
LocalDate today = LocalDate.now(z);
2017-01-23
Мы можем спросить, что день-год, то есть, 1-366.
int dayOfYear = today.getDayOfYear() ;
Мы можем настроить что LocalDate
в определенный день в год.
LocalDate ld = today.withDayOfYear(187) ;
2017-07-06
Смотрите эту code run live at IdeOne.com.
О java.time
java.time каркас встроен в Java 8 и более поздних версий. Эти классы вытесняют неприятные старые legacy классы времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Проект Joda-Time, в настоящее время в maintenance mode, советует перейти на классы java.time.
Чтобы узнать больше, см. Oracle Tutorial. И поиск Stack Overflow для многих примеров и объяснений. Спецификация: JSR 310.
Где получить классы java.time?
ThreeTen-Extra Проект расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more.
Использование синтаксиса java-doc сбивает с толку для разработчиков, отличных от java –
@StanislavLevental Вы правы, но здесь точка (.) Вводит в заблуждение, так как 'get' не является статическим, а методом экземпляра. – isnot2bad
@StanislavLevental, об этом спросили о Java. Вероятно, большинство людей, читающих это, будут разработчиками Java. –