0

この「ThuJan0108:40:38 GMT + 01:001754」として表される時間をお願いします。

だから私はこれをしました:

                Date datu = new Date();
                datu.setYear(1754);
                datu.setMonth(0);
                datu.setDate(1);
                DateFormat.format("%tc", datu);

                // DATU = Thu Jan 01 08:40:38 GMT+01:00 3654
                String startTime = datu.toGMTString();

ここで問題となるのは、コードで1754年を設定したことです。しかし、私がそれを印刷するとき。3654がありますか?

編集:datu.setYear(1754-1900)はトリックを行うことができます。しかし、別の方法はありませんか?

4

4 に答える 4

1

使用しているJavaAPIのバージョンは何ですか?代わりに、java.text.SimpleDateFormatとjava.util.Calendarを使用することをお勧めします。コードは次のようになります。

Calendar cal = Calendar.getInstance();
cal.set(1754, 0, 1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // <- customize your format
sdf.format(cal.getTime()); // <- get your string

date.toGMTString()メソッドも非推奨になっているため、回避することをお勧めします。

于 2012-04-20T08:06:42.863 に答える
1

このようにしてみてください:

SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd hh:mm:ss 'GMT'Z yyyy");
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,1754);
c.set(Calendar.MONTH, 0); // JAN
c.set(Calendar.DATE, 1);
System.out.println(sdf.format(new Date(c.getTimeInMillis())));

出力

Tue Jan 01 05:23:55 GMT+0800 1754
于 2012-04-20T09:25:21.427 に答える
0

date.SetYearは非推奨になっているようです。ドキュメントによると、代わりにCalendar.set(Calendar.YEAR、year)を使用する必要があります。

于 2012-04-20T07:55:22.873 に答える
0

あなたが言ったように、date.setYear(望ましい年-1900)は問題を修正します。このメソッドは非推奨になっていることに注意してください。年から1900を引く必要のないCalendarクラスを使用することをお勧めします。カレンダーを使用して行っていることを実現するコードスニペットを以下に示します。

Calendar calendar =Calendar.getInstance();
calendar.setTime(date);// note that the date object here will be datu according to 
//your code. It could be any object of the Date class
int year = calendar.get(Calendar.YEAR);

お役に立てれば。

問題が解決した場合は、お気軽に回答としてマークしてください。幸運を!

于 2012-04-20T07:59:55.577 に答える