🕐
DartにおけるDateTime操作の基礎
はじめに
DateTimeとは日付と時刻を表すために使用されます。DateTimeは1970年1月1日からの経過時間をミリ秒で保持しています。
基本的な使いかた
特定の日時を作成するには以下のようにします。
// 順番に年、月、日、時、分、秒、ミリ秒を指定。
var time = DateTime(2024, 12, 10, 12, 12, 30, 600);
print(time);
今の時間を取得するには以下のようにします。
var now = DateTime.now();
print(now); // 2024-03-02 23:41:58.373
日付と時間の操作
日付や時間を進めたり、戻したりすることもできます。add
メソッドとsubtract
メソッドを使用します。
// 10時間進める処理
var now = DateTime.now();
var later = now.add(const Duration(hours: 10));
// 10時間戻す処理
var now = DateTime.now();
var before = now.subtract(const Duration(hours: 10));
特定の日付の部分を取得することもできます。
var now = DateTime.now();
print(now.year); // 2024
print(now.month); // 3
print(now.day); // 4
print(now.hour); // 20
print(now.minute); // 24
print(now.seconds); // 38
日付と時間の比較
日付と時間の比較もできます。
- compareToメソッド
このメソッドは呼び出し側の日付が比較する日付よりも前の場合には-1、同じ場合には0、後の場合には1を返します。
void main() {
var now = DateTime.now();
var tomorrow = now.add(const Duration(days: 1));
var yesterday = now.subtract(const Duration(days: 1));
print(now.compareTo(tomorrow)); // -1
print(now.compareTo(now)); // 0
print(now.compareTo(yesterday)); // 1
}
- isAtSameMomentAsメソッド
このメソッドは比較した時間が同じ値ならtrueを違う場合にはfalseを返します。
void main() {
var now = DateTime.now();
var tomorrow = now.add(const Duration(days: 1));
print(now.isAtSameMomentAs(now));
print(now.isAtSameMomentAs(tomorrow));
}
- isAfterメソッド
このメソッドは呼び出し側の日付が比較する日付よりも後ならtrueを違う場合にはfalseを返します。
void main() {
var now = DateTime.now();
var tomorrow = now.add(const Duration(days: 1));
var yesterday = now.subtract(const Duration(days: 1));
print(now.isAfter(tomorrow)); // false
print(now.isAfter(yesterday)); // true
}
- isBeforeメソッド
このメソッドは呼び出し側の日付が比較する日付よりも前ならtrueを違う場合にはfalseを返します。
void main() {
var now = DateTime.now();
var tomorrow = now.add(const Duration(days: 1));
var yesterday = now.subtract(const Duration(days: 1));
print(now.isBefore(tomorrow)); // true
print(now.isBefore(yesterday)); // false
}
おわりに
今回はDartでの時間操作の基礎についてまとめました。時間操作はアプリ開発ではよく使うので、しっかりと身につけていきたいと思います。最後まで読んでいただきありがとうございました。
Discussion