如何获得Dart的时间戳?

47 epoch dart

我一直在学习Dart,但我不知道如何生成时间戳.我试过这个:

void main() {
  print((new Date()).millisecondsSinceEpoch);
}
Run Code Online (Sandbox Code Playgroud)

感谢IDE,我能够做到这一点,但是我遇到了一个令人困惑的错误:

Exception: No such method: 'Date'
Run Code Online (Sandbox Code Playgroud)

救命?

Kai*_*ren 78

你几乎把它弄好了.您缺少的是您没有使用命名构造函数:

void main() {
  print(new DateTime.now().millisecondsSinceEpoch);
}
Run Code Online (Sandbox Code Playgroud)

得到:

1351441456747

有关更多信息,请参阅API文档:http://api.dartlang.org/docs/releases/latest/dart_core/DateTime.html

  • 这是 UTC 结果吗? (2认同)

Ash*_*kil 12

为了从 中获取以毫秒为单位的时间戳DateTime。只需使用该millisecondsSinceEpoch属性即可。请记住,这不是一个可调用函数,而是一个属性。

DateTime time = DateTime.now();
time.millisecondsSinceEpoch;
Run Code Online (Sandbox Code Playgroud)

1970 年 1 月 1 日 00:00:00 UTC 被称为 Unix 纪元。因此,您将得到一个与自纪元以来经过的毫秒数相对应的数字。还有一处microsecondsSinceEpoch房产。

Dart 文档 - https://api.dart.dev/stable/2.17.0/dart-core/DateTime/millisecondsSinceEpoch.html


Moh*_*ami 11

这是我的解决方案

DateTime _now = DateTime.now();
print('timestamp: ${_now.hour}:${_now.minute}:${_now.second}.${_now.millisecond}');
Run Code Online (Sandbox Code Playgroud)


Art*_*nig 5

微秒也可以从 Dart本地获得:(无需导入包)。

void main() {
  print(new DateTime.now().microsecondsSinceEpoch);
}
Run Code Online (Sandbox Code Playgroud)

输出:

1591457696860000