Отображение последних двух цифр текущего года в 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 году, но годы продолжались.: -)