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.000DateTime.now()
現在時刻をローカルタイムゾーンで設定する。
「print(DateTime.now());」で値を確認。
2023-03-06 22:24:20.715592DateTime.utc()
指定した時刻をUTC(協定世界時)で設定。
引数はDateTime()と同じ。
「print(DateTime.utc(2023, 1));」を実行。
末尾にUTCを表す「Z」が付与される。
2023-01-01 00:00:00.000ZDateTime.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.098327DateTime.fromMillisecondsSinceEpoch()
基本的にはDateTime.fromMicrosecondsSinceEpoch()と同じ。こちらはミリ秒単位で取得できる。
「print(DateTime.now().millisecondsSinceEpoch);」で1970/01/01から現在までの経過時間をミリ秒で取得する。
1678143277169「print(DateTime.fromMillisecondsSinceEpoch(1678143277169));」を実行。実行時刻をミリ秒レベルで確認できる。
2023-03-07 07:54:37.169


コメント