Dart DateTimeクラスisAtSameMomentAs()メソッドについてメモ書き。
DateTimeクラスのインスタンス変数を比較し、同じ時刻であればbool型のtrueを返す。
比較はUTC、ローカルタイムゾーン関係なしに行われる。
コーディングしてみる。
void main() {
// 現在時刻のDateTimeインスタンスを生成
final current1 = DateTime.now();
// 現在時刻のDateTimeインスタンスをUTCに変換
final currentUTC = current1.toUtc();
// 同じ時刻のインスタンス変数を生成
final current2 = current1;
// 1マイクロ秒進んだインスタンス変数を生成
final after = current1.add(Duration(microseconds: 1));
// 同じ時刻で比較
print(current1);
print(current2);
print(current2.isAtSameMomentAs(current1));
// 1マイクロ秒進んだ時刻で比較
print(after);
print(after.isAtSameMomentAs(current1));
// UTCで比較
print(currentUTC);
print(currentUTC.isAtSameMomentAs(current1));
}
実行結果。
1行目と2行目は同じ時刻。同じ時刻を比較しているのでtrueを返す。
4行目は1マイクロ秒進んだ時刻。falseを返す。
6行目は同時刻のUTC。trueを返す。
2023-03-15 07:54:04.766513
2023-03-15 07:54:04.766513
true
2023-03-15 07:54:04.766514
false
2023-03-14 22:54:04.766513Z
true
コメント