Dartで日時を表すクラスは DateTime
class ぽいです。
DateTimeをいい感じに変換するためには DateFormat
class の各種名前付きコンストラクタと format
メソッドをつかうぽい。日本語での日時の表示をするには、intl
パッケージを使う。
Flutter で日本語対応するときには、公式で紹介されている flutter_localizations
パッケージを使うと思う。このパッケージを入れると intl
パッケージも一緒にくっついてくる。
本題としては、Flutter でDateTimeを日本語でいい感じに表示するときに、どの名前付きコンストラクタを使ったらいいかパッとわからなかったので個人的メモ。正直、雰囲気で察して試したり、以下のページ見れば十分だと思う。
各種名前付きコンストラクタを使ってみる。
final time = DateTime.parse('2020-12-22 21:43:20.585096'); print(DateFormat.xxx('ja').format(time)),
名前付きコンストラクタ | result |
---|---|
DateFormat.d() | 22日 |
DateFormat.E() | 火 |
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.jmv() | - |
DateFormat.jmz() | - |
DateFormat.jv() | - |
DateFormat.jz() | - |
DateFormat.LLL() | 12月 |
DateFormat.LLLL() | 12月 |
DateFormat.M() | 12月 |
DateFormat.m() | 43 |
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.ms() | 43:20 |
DateFormat.QQQ() | Q4 |
DateFormat.QQQQ() | 第4四半期 |
DateFormat.s() | 20 |
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日火曜日 |
DateFormat.yQQQ() | 2020/Q4 |
DateFormat.yQQQQ() | 2020年第4四半期 |
なにやってるんだろね。