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