web-dev-qa-db-ja.com

Javaで現在の年の下2桁を表示する

部分文字列アルゴリズムやサードパーティのライブラリを使用せずに、現在の年の下2桁のみを表示するにはどうすればよいですか?

以下の方法を試してみましたが、4桁の年になりました。現在の年を2桁の形式で取得するために利用可能な日付形式オプションがあるかどうかを知りたい。

Calendar.getInstance().get(Calendar.YEAR);
19
нαƒєєz

SimpleDateFormat を使用して、要件に従って日付をフォーマットできます。

DateFormat df = new SimpleDateFormat("yy"); // Just the year, with 2 digits
String formattedDate = df.format(Calendar.getInstance().getTime());
System.out.println(formattedDate);

編集:ニーズ/要件に応じて、私が提案したアプローチまたはロビンが提案したアプローチのいずれか に使える。理想的には、Dateで多くの操作を処理する場合は、DateFormatアプローチを使用する方が適切です。

36
SudoRahul

モジュロ演算子を使用するだけです:

int lastTwoDigits = Calendar.getInstance().get(Calendar.YEAR) % 100;

編集:@ R.Jが提案したようにSimpleDateFormatを使用することは、結果を文字列にしたい場合に適したソリューションです。整数が必要な場合は、モジュロを使用します

67
Robin Krahl

これはワンライナーです:

_    System.out.println(Year.now().format(DateTimeFormatter.ofPattern("uu")));
_

Java 8(およびJava 6および7にバックポートされた)で導入された多数の日付および時刻クラスの1つである_Java.time.Year_を使用しています。これは、新しいクラスがより便利で、古いクラスCalendarおよびSimpleDateFormatよりも明確なコードにつながる非常に多くのほんの一例です。

文字列としてではなく、2桁の数字が必要な場合は、次を使用できます。
Year.now().getValue() % 100

他の回答は2013年には良い回答でしたが、年が経ちました。 :-)

6
Ole V.V.