使用 DateFormat 时出现意外输出

问题描述 投票:0回答:1

错误的 flutter DateFormat 结果,带有

DateTime.fromMillisecondsSinceEpoch(0);

DateFormat('HH:mm:ss.SSS').format(DateTime.fromMillisecondsSinceEpoch(0))

返回

02:00:00.000
,但不是应该返回
00:00:00.000
吗?

flutter date-format
1个回答
0
投票

要获得 00:00:00.000,您需要强制 DateTime 采用 UTC 而不是您当地的时区。

解决方案: 您可以使用 toUtc() 显式指定时区,以确保以 UTC 格式设置时间格式:

import 'package:intl/intl.dart';
    
    void main() {
      DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(0).toUtc();
      String formattedTime = DateFormat('HH:mm:ss.SSS').format(dateTime);
      print(formattedTime); // Output: 00:00:00.000
    }
© www.soinside.com 2019 - 2024. All rights reserved.