当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"));
答案 0 :(得分:1)
您编写的格式字符串使用小写hh
,这是一个12小时制。使用大写HH
表示小时可以获得24小时制。你在最后一行得到的输出目前是12点午夜,而不是24小时制的00小时。
请参阅DateFormat
中的显式模式语法