1

次のコードがあります。

    SimpleDateFormat format=new SimpleDateFormat("yyyy.MM.dd HH:mm");
    try {
            Date date=format.parse("2012.9.11 02:00");
                            Log.i("date", date.toGMTString());
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.e("exception", e.getMessage());
        }

しかし、「2012 年 9 月 10 日 22:00:00 GMT」というメッセージが表示されます。つまり、日付が正しくありません。どうすれば修正できますか?

4

5 に答える 5

1

それは正しい日付です。これは、GMT オフセットに基づいて計算されます。

このように印刷するに11-Sep-2012 02:00:00date.toLocaleString()(非推奨の方法)

または、次を使用してCalendarクラスを使用して日付を印刷できます。

SimpleDateFormat format=new SimpleDateFormat("yyyy.MM.dd HH:mm");
Date date=format.parse("2012.09.11 02:00");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(format.format(cal.getTime()));

これは次を出力します:2012.09.11 02:00

詳細については、 http://www.vogella.com/articles/JavaDateTimeAPI/article.htmlを参照してください。

于 2012-10-10T06:28:39.413 に答える
0

使っているので間違いですdate.toGMTString()

変数を出力してみるだけdateで、正しい時間が表示されます。

于 2012-10-10T07:08:58.350 に答える
0

印刷date.toGMTString()すると、「2012 年 9 月 10 日 22:00:00 GMT」と表示されますが、これは間違った文字列ではなく、グリニッジ標準時の日付です。toGMTStringは推奨されないことに注意してください。

日付を自分の形式で印刷したい場合は、そうすることができます

 Log.i("date", format.format(date));

補助的な「0」を取得したくない場合は、

format=new SimpleDateFormat("yyyy.M.d HH:mm");
于 2012-10-10T06:22:13.070 に答える
0

Per JavaDocの ようにdate.toGMTString()、非推奨のメソッドです。

非推奨のメソッドを使用することはお勧めできません。

date.toString()の代わりに使用しdate.toGMTString()ます。

または

format.format(date);

于 2012-10-10T06:28:21.253 に答える
0

このメソッドtoGMTString()は非推奨です。ただし、説明としては、タイムゾーンが異なる可能性があるため、ロケールが異なります。date.toLocaleString()非推奨の方法でもありますが、正しく出力されるはずです。

于 2012-10-10T06:29:06.810 に答える