添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

时间戳别名 Epoch timestamp 或 Unix timestamp 是一个长数字,代表自1970-01-01 PST以来的毫秒数。 它是一个自1970-01-01 PST以来的毫秒数。 有时,你需要在dart和flutter中把时间戳转换为DateTime对象。

如何在Dart和Flutter中把时间戳转换为DateTime?

这个例子将时间戳以毫秒和微秒转换为DateTime

让我们看看如何获得以毫秒和微秒计的当前时间戳。

void main() {
  print(DateTime.now()); //2022-04-10 11:51:16.566
  print(DateTime.now().millisecondsSinceEpoch); //1649571676566
  print(new DateTime.now().microsecondsSinceEpoch); //1649571676566000

DateTime提供了两个方法fromMicrosecondsSinceEpoch 。从一个给定的微秒创建DateTime对象

DateTime DateTime.fromMicrosecondsSinceEpoch(int microsecondsSinceEpoch, {bool isUtc = false})

microsecondsSinceEpoch:该长数字代表经过微秒的纪元时间戳isUtc: 默认为false,返回本地DateTime,true,返回UTC日期和时间。fromMillisecondsSinceEpoch:

DateTime DateTime.fromMillisecondsSinceEpoch(int millisecondsSinceEpoch, {bool isUtc = false})

millisecondsSinceEpoch:长的数字代表毫秒经过的纪元时间戳isUtc: false,返回本地DateTime,true,返回UTC日期和时间。

下面是一个example program parse timestamp to Local DateTime

void main() {
  var microSeconds = 1649571676566000;
  var date = new DateTime.fromMicrosecondsSinceEpoch(microSeconds);
  print(date); //2022-04-10 11:51:16.566
  var milliSeconds = 1649571676566;
  var date1 = DateTime.fromMillisecondsSinceEpoch(milliSeconds);
  print(date1); //2022-04-10 11:51:16.566
2022-04-10 11:51:16.566
2022-04-10 11:51:16.566

让我们看一个将时间戳转换为Datetime的例子,UTC时间戳fromMicrosecondsSinceEpochfromMillisecondsSinceEpoch 方法接受了isUtc:true 参数来返回UTC时区

void main() {
  var microSeconds = 1649571676566000;
  var date = new DateTime.fromMicrosecondsSinceEpoch(microSeconds, isUtc: true);
  print(date); //2022-04-10 06:21:16.566Z
  var milliSeconds = 1649571676566;
  var date1 = DateTime.fromMillisecondsSinceEpoch(milliSeconds, isUtc: true);
  print(date1); //2022-04-10 06:21:16.566Z
2022-04-10 06:21:16.566Z
2022-04-10 06:21:16.566Z

在输出中,Datetime中的Z格式代表UTC日期和时间的ISO8601 Datetime标准。

  • 私信
    21,948