dart - 转换的纪元时间比模拟器提前 5 小时

标签 dart flutter

我做了一个简单的函数来将纪元时间转换成某种格式

String convertEpochToHuman(int epoch) {
  final DateTime timeStamp = DateTime.fromMillisecondsSinceEpoch(epoch * 1000);
  var format = new DateFormat('HH:mm, yyyy-MM-DD');
  return format.format(timeStamp);
}

前往 here ,我得到了“当前的 Unix 纪元时间是”值并将其放入我的代码中。将它运行到模拟器时,我得到了正确的日期,但时间提前了 5 小时(我在加拿大东海岸时区)。因此,即使模拟器是东部时间,结果也是 GMT 值。

如何确保时间转换是根据我的时区完成的?

谢谢

最佳答案

传递isUtc: true(默认为false)

final DateTime timeStamp = DateTime.fromMillisecondsSinceEpoch(epoch * 1000, isUtc: true);

关于dart - 转换的纪元时间比模拟器提前 5 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54299431/

相关文章:

flutter - Flutter 照片管理的最佳方式

flutter - 如果存在具有同名方法的 Mixin,如何调用父类(super class)方法

flutter - 如何在电话号码前设置国家/地区代码?

dart - 弹出第二页后触发FirstPage的setState方法

python - 相当于 dart 中的 python with 语句

firebase - 使用 FirebaseAuth 、 Firestore 和 Google 登录的 Flutter multidex 问题

flutter - 将 InteractiveViewer 包装在 GestureDetector 中会导致 InteractiveViewer 输入响应不佳

inheritance - 如何为泛型类 State<T extends StatefulWidget> 编写 mixin

flutter - 如何设置一个日期选择器选择的日期是 flutter 另一个日期选择器的第一日期

android - 如何更新build.gradle