web-dev-qa-db-ja.com

文字列に現在の年の値を取得する

文字列で現在の年の値を取得する必要があるので、次のようにしました。

Calendar now = Calendar.getInstance();
DateFormat date = new SimpleDateFormat("yyyy");
String year = date.format(now);

Ubuntuでは動作しますが、Windows7では動作しません。

なぜなのかご存知ですか?それを行うためのより安全な方法はありますか?

ありがとう

6
Frank

Calendar#get(int field) メソッドを使用して、Calendarインスタンスから年を簡単に取得できます。

Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
String yearInString = String.valueOf(year);
21
Rohit Jain
String thisYear = new SimpleDateFormat("yyyy").format(new Date());
8
aianitro

次のようにすることもできます。

String year = String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
2
jdev

どうですか

Date currentDate = new Date();
String currentYear = String.valueOf(currentDate.getYear());
2
ssantos

タイムゾーン

質問と受け入れられた回答はどちらも、タイムゾーンの質問を無視します。新年の時期は、タイムゾーンによって年数が異なります。

ジョーダタイム

バンドルされている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();
1
Basil Bourque

試してみてください

Calendar now = Calendar.getInstance();
String year = String.valueOf(now.get(Calendar.YEAR));
1
sunysen

Java 8には Java.time コンピュータの時計から現在の年を簡単に取得できます。

現在の年を整数として取得するには、次のように記述します。

int thisYear = Year.now().getValue();

文字列として取得するには:

String thisYear = Year.now().toString();
1
Gemtastic

Java 8:

Java.time.Year.now();

これが リンク です。

1
kizanlik
  //  enter code here
Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy");
String year = format.format(date);
0

Java以前のバージョンJava 8では、Java.sql.Dateクラスを使用することもできます。Stringに変換し、年を部分文字列にします。

String currentYear = new Java.sql.Date(System.currentTimeMillis()).toString().substring(0, 4);
0
Rok T.