edo1z blog

プログラミングなどに関するブログです

Dartでエポックタイムを取得する

エポックタイムというのは、1970年1月1日0:00:00からの秒数です。

bashの場合

bashで出すと下記のようになります。

$ date -u +%s -d '1970/01/01 00:00:00.000'
0
$ date -u +%s -d '1970/01/01 00:01:00.000'
60
$ date -u +%s -d '2019/08/29 05:05:05.234'
1567055105
$ date -u +%s -d '2019/08/29 05:05:05.999'
1567055105

dartの場合

dartでは下記でできました。

int time = (new DateTime.now().millisecondsSinceEpoch / 1000).floor();

secondsSinceEpochとかあればいいんだけどないっぽいので、1000で割って切り捨ててエポック秒にしております。

お試しコード

void main() {
  var time1 = DateTime.parse('1970-01-01 00:00:00Z');
  print(time1.isUtc);
  print(time1.millisecondsSinceEpoch / 1000);
  int time2 = (new DateTime.now().millisecondsSinceEpoch / 1000).floor();
  print(time2);
  var time3 = DateTime.parse('2019-08-29 05:05:05.321Z');
  print((time3.millisecondsSinceEpoch / 1000).floor());
}

実行結果

true
0.0
1567071321
1567055105

DartのDatetime関連のドキュメント

DateTime class - dart:core library - Dart API

millisecondsSinceEpoch property - DateTime class - dart:core library - Dart API

parse method - DateTime class - dart:core library - Dart API