Отображение последних двух цифр текущего года в Java
Как я могу отображать только последние две цифры текущего года без использования каких-либо подстрочных алгоритмов или сторонних библиотек?
Я попробовал метод ниже, и он дал четырехзначный год. Я хочу знать, есть ли варианты форматирования даты, доступные для получения текущего года в двухзначном формате.
Calendar.getInstance().get(Calendar.YEAR);
Ответы
Ответ 1
Вы можете использовать SimpleDateFormat
для форматирования даты в соответствии с вашими требованиями.
DateFormat df = new SimpleDateFormat("yy"); // Just the year, with 2 digits
String formattedDate = df.format(Calendar.getInstance().getTime());
System.out.println(formattedDate);
Изменить: В зависимости от потребностей/требований может использоваться либо предложенный мной подход, либо предложенный Робин. В идеале, имея дело с большим количеством манипуляций с датой, лучше использовать подход DateFormat
.
Ответ 2
Вы можете просто использовать оператор modulo:
int lastTwoDigits = Calendar.getInstance().get(Calendar.YEAR) % 100;
Изменить: использование SimpleDateFormat
, как предложено @R.J, является лучшим решением, если вы хотите, чтобы результат был строкой. Если вам нужно целое число, используйте modulo.
Ответ 3
Это однострочный:
System.out.println(Year.now().format(DateTimeFormatter.ofPattern("uu")));
Я использую java.time.Year
, один из ряда классов даты и времени, введенных в Java 8 (а также обратно к Java 6 и 7). Это всего лишь один маленький пример из очень многих, где новые классы более удобны и приводят к более четкому коду, чем старые классы Calendar
и SimpleDateFormat
.
Если вам просто нужен двузначный номер, а не как строка, вы можете использовать:
Year.now().getValue() % 100
.
Другие ответы были хорошими ответами в 2013 году, но годы продолжались.: -)