django-rest-framework-datatables и поле перевода Джанго Парлера

tl; dr
Month.FEBRUARY.getValue()  // February → 2.

2

Подробности

Ответа на этот вопрос Jon Skeet .

Теперь у нас есть современная замена для этих неприятных старых устаревших классов времени: классы java.time .

java.time.Month

Среди этих классов есть Month перечисление . Перечисление содержит один или несколько предопределенных объектов, объекты, которые автоматически создаются при загрузке класса. На Month у нас есть дюжина таких объектов, каждая из которых имеет имя: JANUARY , FEBRUARY, MARCH и т. Д. Каждая из них является константой класса static final public. Вы можете использовать и передавать эти объекты в любом месте вашего кода. Пример: someMethod( Month.AUGUST )

К счастью, они имеют правильную нумерацию, 1-12, где 1 - январь, а 12 - декабрь.

Получить объект Month для определенного месяца ( 1-12).

Month month = Month.of( 2 );  // 2 → February.

. Идя в другом направлении, спросите объект Month для его номера месяца.

int monthNumber = Month.FEBRUARY.getValue();  // February → 2.

Многие другие удобные методы для этого класса, такие как зная количество дней в каждом месяце . Класс может даже генерировать локализованное имя месяца.

Вы можете получить локализованное имя месяца в разных длинах или аббревиатурах.

String output = 
    Month.FEBRUARY.getDisplayName( 
        TextStyle.FULL , 
        Locale.CANADA_FRENCH 
    );

février

Кроме того, вы должны передавать объекты этого перечисления вокруг своей базы кода, а не просто целые числа. Это обеспечивает безопасность типов, обеспечивает допустимый диапазон значений и делает ваш код более самодокументированным. См. Учебник Oracle , если он не знаком с удивительно мощным средством перечисления в Java.

Вы также можете найти полезные Year и YearMonth .


О java.time

Структура java.time встроена в Java 8 и более поздние версии. Эти классы вытесняют неприятные старые классы времени legacy , такие как java.util.Date , .Calendar и & amp; java.text.SimpleDateFormat .

Проект Joda-Time , теперь в режиме обслуживания , советует перейти на java.time.

Чтобы узнать больше, см. учебное пособие Oracle . И поиск Stack Overflow для многих примеров и объяснений. Спецификация JSR 310 .

Где получить классы java.time?

  • Java SE 8 и SE 9 и более поздние версии. Часть стандартного Java API с интегрированной реализацией. Java 9 добавляет некоторые незначительные функции и исправления.
  • Java SE 6 и SE 7 Большая часть функций java.time возвращается в Java 6 & amp; 7 в ThreeTen-Backport .
  • Android Проект ThreeTenABP адаптирует ThreeTen-Backport (упомянутый выше) специально для Android. См. Как использовать ... .

Проект ThreeTen-Extra расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval , YearWeek , YearQuarter и more .

0
задан Daniel Kusy 19 March 2019 в 16:18
поделиться