【Dart/Flutter】DateTimeチートシート

現在時刻

DateTime.now();

指定時刻

DateTime.utc(2021, 04, 17);

DateTimeを文字列に変換(DateTime to String)

import 'package:intl/intl.dart';

※intlのinstallが必要
https://pub.dev/packages/intl

DateFormat('yyyy/MM/dd(E) HH:mm').format(DateTime.now());

日本語の曜日を表示する

まずは、ロケールの初期化

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:intl/date_symbol_data_local.dart';

void main() {
  initializeDateFormatting('ja_JP').then((_) {
    runApp(MyApp());
  });
}

呼び出し

DateFormat('yyyy/MM/dd(E) HH:mm', "ja").format(DateTime.now());

初期化してないとこんなエラーが出る

file
LocaleDataException (LocaleDataException: Locale data has not been initialized, call initializeDateFormatting().)

文字列をDateTimeに変換(String to DateTime)

DateTime.parse('2019-04-30 10:48:27.701406');

取り込める形式

"2012-02-27"
"2012-02-27 13:27:00"
"2012-02-27 13:27:00.123456789z"
"2012-02-27 13:27:00,123456789z"
"20120227 13:27:00"
"20120227T132700"
"20120227"
"+20120227"
"2012-02-27T14Z"
"2012-02-27T14+00:00"
"-123450101 00:00:00 Z": in the year -12345.
"2002-02-27T14:00:00-0500": Same as "2002-02-27T19:00:00Z"

https://api.flutter.dev/flutter/dart-core/DateTime/parse.html

フォーマット指定して変換する

通常取り込めない形式も指定して取り込める

DateFormat('yyyy年MM月dd日').parse('2021年04月17日');

時間の加算

10分追加の例

var time = DateTime.now();
time = time.add(const Duration(minutes: 10));

時間の比較

現在が2099年より後かを判定する例

var time = DateTime.now();
after2099 = time.isAfter(DateTime(2099, 1, 0));

現在が2099年より前かを判定する例

var time = DateTime.now();
before2099 = time.isBefore(DateTime(2099, 1, 1));

現在が9時前かを判定する例

var time = DateTime.now();
before9hour = time.hour < 9;

Formatに使える形式(スケルトン)

 ICU Name                   Skeleton
 --------                   --------
 DAY                          d
 ABBR_WEEKDAY                 E
 WEEKDAY                      EEEE
 ABBR_STANDALONE_MONTH        LLL
 STANDALONE_MONTH             LLLL
 NUM_MONTH                    M
 NUM_MONTH_DAY                Md
 NUM_MONTH_WEEKDAY_DAY        MEd
 ABBR_MONTH                   MMM
 ABBR_MONTH_DAY               MMMd
 ABBR_MONTH_WEEKDAY_DAY       MMMEd
 MONTH                        MMMM
 MONTH_DAY                    MMMMd
 MONTH_WEEKDAY_DAY            MMMMEEEEd
 ABBR_QUARTER                 QQQ
 QUARTER                      QQQQ
 YEAR                         y
 YEAR_NUM_MONTH               yM
 YEAR_NUM_MONTH_DAY           yMd
 YEAR_NUM_MONTH_WEEKDAY_DAY   yMEd
 YEAR_ABBR_MONTH              yMMM
 YEAR_ABBR_MONTH_DAY          yMMMd
 YEAR_ABBR_MONTH_WEEKDAY_DAY  yMMMEd
 YEAR_MONTH                   yMMMM
 YEAR_MONTH_DAY               yMMMMd
 YEAR_MONTH_WEEKDAY_DAY       yMMMMEEEEd
 YEAR_ABBR_QUARTER            yQQQ
 YEAR_QUARTER                 yQQQQ
 HOUR24                       H
 HOUR24_MINUTE                Hm
 HOUR24_MINUTE_SECOND         Hms
 HOUR                         j
 HOUR_MINUTE                  jm
 HOUR_MINUTE_SECOND           jms
 HOUR_MINUTE_GENERIC_TZ       jmv   (not yet implemented)
 HOUR_MINUTE_TZ               jmz   (not yet implemented)
 HOUR_GENERIC_TZ              jv    (not yet implemented)
 HOUR_TZ                      jz    (not yet implemented)
 MINUTE                       m
 MINUTE_SECOND                ms
 SECOND                       s
DateFormatドキュメント parseドキュメント
【Dart/Flutter】Stringチートシート 【Dart/Flutter】Stringチートシート
Flutter開発で知らないと損すること Flutter開発で知らないと損すること

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です