DartでDateTimeクラスを扱う時のコンストラクタについて調べたのでメモ書き。
概要
DateTimeクラスはコンストラクタが複数用意されている。
公式サイトはこちら。
DateTime()
先ずはDateTimeのデフォルトコンストラクタ。ローカルタイムゾーンで時刻が設定される。
引数は以下の通り。第1引数の年は必須、残りはオプション引数。
引数 | 必須/オプション | 型 | 説明 |
---|---|---|---|
第1引数 | 必須 | int | 年 |
第2引数 | オプション | int | 月。デフォルト1 |
第3引数 | オプション | int | 日。デフォルト1 |
第4引数 | オプション | int | 時。デフォルト0 |
第5引数 | オプション | int | 分。デフォルト0 |
第6引数 | オプション | int | 秒。デフォルト0 |
第7引数 | オプション | int | ミリ秒。デフォルト0 |
第8引数 | オプション | int | マイクロ秒。デフォルト0 |
「print(DateTime(2023, 1));」で値を確認。
2023-01-01 00:00:00.000
DateTime.now()
現在時刻をローカルタイムゾーンで設定する。
「print(DateTime.now());」で値を確認。
2023-03-06 22:24:20.715592
DateTime.utc()
指定した時刻をUTC(協定世界時)で設定。
引数はDateTime()と同じ。
「print(DateTime.utc(2023, 1));」を実行。
末尾にUTCを表す「Z」が付与される。
2023-01-01 00:00:00.000Z
DateTime.fromMicrosecondsSinceEpoch()
DateTime.fromMicrosecondsSinceEpoch()は1970/01/01を起点とした経過時間をマイクロ秒で引数に渡す。
「print(DateTime.fromMicrosecondsSinceEpoch(0));」を実行し、起点を確認。
1970-01-01 09:00:00.000
ローカルタイムゾーンで値が返される。
「print(DateTime.now().microsecondsSinceEpoch);」で1970/01/01から現在までの経過時間をマイクロ秒で取得する。
1678142736098327
上記の結果を元に「print(DateTime.fromMicrosecondsSinceEpoch(1678142736098327));」を実行。実行時刻をマイクロ秒レベルで確認できる。
2023-03-07 07:45:36.098327
DateTime.fromMillisecondsSinceEpoch()
基本的にはDateTime.fromMicrosecondsSinceEpoch()と同じ。こちらはミリ秒単位で取得できる。
「print(DateTime.now().millisecondsSinceEpoch);」で1970/01/01から現在までの経過時間をミリ秒で取得する。
1678143277169
「print(DateTime.fromMillisecondsSinceEpoch(1678143277169));」を実行。実行時刻をミリ秒レベルで確認できる。
2023-03-07 07:54:37.169
コメント