現在の年の値を文字列で取得する必要があるため、次のようにしました。
Calendar now = Calendar.getInstance();
DateFormat date = new SimpleDateFormat("yyyy");
String year = date.format(now);
ubuntu では動作しますが、windows 7 では動作しません。
なぜなのかご存知ですか?それを行うより安全な方法はありますか?
ありがとう
現在の年の値を文字列で取得する必要があるため、次のようにしました。
Calendar now = Calendar.getInstance();
DateFormat date = new SimpleDateFormat("yyyy");
String year = date.format(now);
ubuntu では動作しますが、windows 7 では動作しません。
なぜなのかご存知ですか?それを行うより安全な方法はありますか?
ありがとう
メソッドCalendar
を使用して、インスタンスから簡単に年を取得できます。Calendar#get(int field)
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
String yearInString = String.valueOf(year);
String thisYear = new SimpleDateFormat("yyyy").format(new Date());
java.time
Java 8 には、コンピューターの時計から現在の年を簡単に取得できると呼ばれるコレクションがあります。
現在の年を整数として取得するには、次のように簡単に記述できます。
int thisYear = Year.now().getValue();
文字列として取得するには:
String thisYear = Year.now().toString();
どうですか
Date currentDate = new Date();
String currentYear = String.valueOf(currentDate.getYear());
試す
Calendar now = Calendar.getInstance();
String year = String.valueOf(now.get(Calendar.YEAR));
質問と受け入れられた回答の両方で、タイムゾーンの問題は無視されます。新年の時、年号はタイムゾーンによって異なります。
バンドルされている java.util.Date および .Calendar クラスは厄介なことで有名です。それらを避けてください。Joda-Time または Java 8 の新しい java.time パッケージを使用します。
Joda-Time の例。
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime dateTime = DateTime.now( timeZone );
int year = dateTime.year().get();