7

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

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

ubuntu では動作しますが、windows 7 では動作しません。

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

ありがとう

4

10 に答える 10

24

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

Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
String yearInString = String.valueOf(year);
于 2013-10-05T12:54:50.237 に答える
13
String thisYear = new SimpleDateFormat("yyyy").format(new Date());
于 2014-05-18T04:17:46.973 に答える
3

java.timeJava 8 には、コンピューターの時計から現在の年を簡単に取得できると呼ばれるコレクションがあります。

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

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

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

String thisYear = Year.now().toString();
于 2016-04-10T10:28:17.797 に答える
2

どうですか

Date currentDate = new Date();
String currentYear = String.valueOf(currentDate.getYear());
于 2013-10-05T12:54:44.890 に答える
1

試す

Calendar now = Calendar.getInstance();
String year = String.valueOf(now.get(Calendar.YEAR));
于 2013-10-05T12:55:18.307 に答える
1

タイムゾーン

質問と受け入れられた回答の両方で、タイムゾーンの問題は無視されます。新年の時、年号はタイムゾーンによって異なります。

Joda-Time

バンドルされている 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();
于 2014-05-18T07:56:50.143 に答える
1

Java 8:

java.time.Year.now();

ここにリンクがあります。

于 2016-03-25T08:52:16.903 に答える