Dart DateTimeクラスのcompareTo()メソッドについてメモ書き。
DateTimeクラスのインスタンスを比較するメソッド。
比較対象により以下int型を返す。
未来:-1
過去:1
同じ時刻:0
簡単なコードで確認。
void main() {
// 現在時刻のDateTimeインスタンスを生成
final current1 = DateTime.now();
// 現在時刻のDateTimeインスタンスをUTCに変換
final currentUTC = current1.toUtc();
// 同じ時刻のインスタンス変数を代入
final current2 = current1;
// 1マイクロ秒未来のインスタンス変数を生成
final after = current1.add(Duration(microseconds: 1));
// 1マイクロ秒過去のインスタンス変数を生成
final before = current1.subtract(Duration(microseconds: 1));
// ①同じ時刻で比較
print(current1);
print(current2);
print(current1.compareTo(current2));
// ②1マイクロ秒未来の時刻で比較
print(after);
print(current1.compareTo(after));
// ③1マイクロ秒過去の時刻で比較
print(before);
print(current1.compareTo(before));
// ④UTCで比較
print(currentUTC);
print(current1.compareTo(currentUTC));
}
①同じ時刻で比較した結果。
0を返す。
2023-03-15 21:53:36.141100
2023-03-15 21:53:36.141100
0
②1マイクロ秒未来の時刻と比較した結果。
-1を返す。
2023-03-15 21:53:36.141101
-1
③1マイクロ秒過去の時刻と比較した結果。
1を返す。
2023-03-15 21:53:36.141099
1
④UTCで比較した結果。
ローカル、UTC関係なく0を返す。
2023-03-15 12:53:36.141100Z
0
コメント