部分文字列アルゴリズムやサードパーティのライブラリを使用せずに、現在の年の下2桁のみを表示するにはどうすればよいですか?
以下の方法を試してみましたが、4桁の年になりました。現在の年を2桁の形式で取得するために利用可能な日付形式オプションがあるかどうかを知りたい。
Calendar.getInstance().get(Calendar.YEAR);
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
アプローチを使用する方が適切です。
モジュロ演算子を使用するだけです:
int lastTwoDigits = Calendar.getInstance().get(Calendar.YEAR) % 100;
編集:@ R.Jが提案したようにSimpleDateFormat
を使用することは、結果を文字列にしたい場合に適したソリューションです。整数が必要な場合は、モジュロを使用します
これはワンライナーです:
_ 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年には良い回答でしたが、年が経ちました。 :-)