Dart转换int?到日期的时间戳给了我错误的日期



我有一个这样的时间戳:

int? completedTimestamp; //1657948481451

当我试图将其转换为这样的日期时:

var date = DateTime.fromMicrosecondsSinceEpoch(completedTimestamp!, isUtc: true);

日期返回:

1970-01-20 04:32:28

我预计2022-07-16 5:14:41

我在这里做错了什么?

您需要将时间戳(以毫秒为单位(转换为日期,如下所示:

var date = DateTime.fromMillisecondsSinceEpoch(completedTimestamp!, isUtc: true);

您使用的时间戳是自epoch以来的毫秒数,因此您希望使用fromMillisecondsSinceEpoch(),而不是fromMicrosecondsSinceEpoch()

DateTime.fromMillisecondsSinceEpoch()将返回2022-07-16 05:14:41.451Z的正确时间戳。

最新更新