Open2

flutter DateTime

yuriyuri

flutter DateTime


今日の日付時間取得

final now = DateTime.now();  
log(now.toString);    // [log] 2022-04-25 15:58:09.044715

nowで取得した日付時間のうち、日にちだけを取得

final today = DateTime.now().day;
log(today.toString);   // [log] 25

todayで取得した日付の一日前を取得

final yesterday = DateTime.now().subtract(const Duration(days: 1)).day;
log(yesterday.toString());  // [log] 24

書き方で型が違うので注意!(結果は同じ、[log] 24 と出る)

final today = DateTime(now.day); //today は DateTime型
final today = DateTime.now().day; // today は int型 

比較

・未来か(昨日と今を比較)

final now = DateTime.now();
final yesterday = now.subtract(const Duration(days: 1));
final future = yesterday.isAfter(now);
log(future.toString());    // [log] false

・過去か(昨日と今を比較)

final now = DateTime.now();
final yesterday = now.subtract(const Duration(days: 1));
final past = yesterday.isBefore(now);
log(past.toString());        // [log] true

・同日かどうかの比較

final today = DateTime(now.day);  // [log] 0026-01-01 00:00:00.000
final dayOfCreateTime = DateTime(createTimes.day); // [log] 0026-01-01 00:00:00.000  (APIから取得した値)
log('${today.isAtSameMomentAs(dayOfCreateTime)}');  // [log] true  (比較して同じだったらtrue、違っていたらfalseを返す)
yuriyuri

DateFormat(DateTimeのさまざまな表示の仕方)

final now = DateTime.now();
final todayFormat = DateFormat('yyyy/MM/dd HH:mm', "ja");  //'ja'は日本語
log(todayFormat.format(now));  // [log] 2022/04/26 14:03

フォーマット

DateFormat.d() 22日
DateFormat.EEEE() 火曜日
DateFormat.H() 21時
DateFormat.Hm() 21:43
DateFormat.Hms() 21:43:20
DateFormat.j() 21時
DateFormat.jm() 21:43
DateFormat.jms() 21:43:20
DateFormat.M() 12月
DateFormat.m() 43
DateFormat.M() 12月
DateFormat.Md() 12/22
DateFormat.MEd() 12/22(火)
DateFormat.MMM() 12月
DateFormat.MMMd() 12月22日
DateFormat.MMMEd() 12月22日(火)
DateFormat.MMMM() 12月
DateFormat.MMMMd() 12月22日
DateFormat.MMMMEEEEd() 12月22日火曜日
DateFormat.y() 2020年
DateFormat.yM() 2020/12
DateFormat.yMd() 2020/12/22
DateFormat.yMEd() 2020/12/22(火)
DateFormat.yMMM() 2020年12月
DateFormat.yMMMd() 2020年12月22日
DateFormat.yMMMEd() 2020年12月22日(火)
DateFormat.yMMMM() 2020年12月
DateFormat.yMMMMd() 2020年12月22日
DateFormat.yMMMMEEEEd() 2020年12月22日火曜日