2

UTC日付がでフォーマットされている場合、UTC日付はフォーマットされているDateFormat#format()と思いますStringが、そうではありません。

以下のコードをご覧ください。これらのテストに合格しました。

DateFormat#format()私の質問は、 UTCの日付を過ぎた12:00の時刻を返すのはなぜですか?ここで何が欠けていますか?

Date date(int millisecondsSinceEpoch, bool isUtc) =>
    new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, isUtc:isUtc);

DateFormat df = new DateFormat("yyyy-MM-dd hh:mm");

// JST (+9.00)
expect(date(0, false).toString(), equals("1970-01-01 09:00:00.000"));
expect(df.format(date(0, false)), equals("1970-01-01 09:00"));

expect(date(0, true).toString(), equals("1970-01-01 00:00:00.000Z"));
// Why 12 o'clock?
expect(df.format(date(0, true)), equals("1970-01-01 12:00"));
4

1 に答える 1

1

作成したフォーマット文字列hhは、12時間制の小文字を使用しています。HH24時間制を取得するには、時間に大文字を使用します。最後の行で取得している出力は、現在、24時間制の00時間ではなく、深夜12時を示しています。

DateFormatの明示的なパターン構文を参照してください

于 2013-01-12T15:24:51.337 に答える