【Flutter/Dart】DateTime(日付/日時)をフォーマットする方法!intlでの使い方

【Flutter/Dart】DateTime(日付/日時)をフォーマットする方法!intlでの使い方

この記事からわかること

  • Flutter/Dart日付フォーマットする方法
  • DateTime文字列変換するには?

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

DartでDateTime(日付/日時)をフォーマットする方法

DartでDateTime(日付/日時)をフォーマットする方法はいくつかあります。それぞれの特徴やメリット/デメリットについてまとめていきたいと思います。

  1. toString/toIso8601Stringメソッド
  2. year、month、dayプロパティ
  3. intl:DateFormat('yyyy/MM/dd')

toString()/toIso8601String()

1つ目の方法はシンプルに文字列に変換するtoStringメソッドを使用する方法です。DateTime型をそのままString型にするとYYYY-MM-dd HH:mm:ss.ms形式で取得することができます。

DateTime now = DateTime.now();
String dateString = now.toString();
print(dateString); // 2025-03-25 21:40:49.967

toIso8601Stringを使用するとISO8601形式で出力することが可能です。

DateTime now = DateTime.now();
String dateString = now.toIso8601String();
print(dateString); // 2025-03-25T21:41:11.298

year、month、dayプロパティ

2つ目の方法はDateTime型の持つプロパティを活用した方法です。DateTime型はyearhourなどのプロパティを保持しており、そこから各項目の値を取得することが可能です。

DateTime now = DateTime.now();
String manualDate = '${now.year}/${now.month}/${now.day} ${now.hour}:${now.minute}:${now.second} ${now.millisecond}';
print(manualDate); // 2025/3/25 21:45:32 611

ただここで取得できるのは整数なので01のようなゼロ埋めはできないので注意が必要です。

intl:DateFormat('yyyy/MM/dd')

3つ目の方法が一番柔軟性と拡張性がある方法で、intlという数値や日付をフォーマットするためのパッケージを使用します。

導入するためには以下のコマンドを実行します。

$ flutter pub add intl

パッケージの導入が完了したらimport文を追加すれば使えるようになります。

import 'package:intl/intl.dart';

日付のフォーマットにはDateFormatを使用します。引数に取得したいフォーマットを指定するだけです。

日時のフォーマットパターン

DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy/MM/dd HH:mm:ss').format(now);
print(formattedDate); // 2025/03/25 21:50:15

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index