目次
現在時刻
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());
初期化してないとこんなエラーが出る
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チートシート
Flutter開発で知らないと損すること