我不理解在Dart中使用日期格式的UTC日期格式

时间:2013-01-12 15:15:13

标签: dart date-format

当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"));

1 个答案:

答案 0 :(得分:1)

您编写的格式字符串使用小写hh,这是一个12小时制。使用大写HH表示小时可以获得24小时制。你在最后一行得到的输出目前是12点午夜,而不是24小时制的00小时。

请参阅DateFormat

中的显式模式语法