質問内容
String型の'2023-07-11 10:43:00.000'をDateTime型にフォーマット('yyyy年m月d日 HH時mm分ss.SSS秒')したいのですが、以下のようなエラーが出てしまいフォーマットすることができません。
どうすれば、フォーマットすることができるのでしょうか?
発生している問題・エラーメッセージ
Trying to read 年 from 2023-07-11 10:43:00.000 at 5 The relevant error-causing widget was
該当のソースコード
Dart
1 String time = '2023-07-11 10:43:00.000'; 2 final formater = DateFormat('yyyy年m月d日 HH時mm分ss.SSS秒'); 3 print(formater.parse(time));
試したこと
調べたのですが、なにをどうすればいいのかわかりませんでした。
こちらにあるとおり、フォーマットの文字列の大文字を小文字に変換したり、小文字を大文字に変換したりしましたが変わらずエラーが出ました。
補足情報(FW/ツールのバージョンなど)
[✓] Flutter (Channel stable, 3.10.5, on macOS darwin-arm64, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.73.0)
追記
回答していただいたことを参考に二つのDateFormatを使って私の欲しい形式のDateTime型のオブジェクトを作成しようとしたのですが、なぜか最終的に元の形式のDateTime型のオブジェクトに戻ってしまいます。
String型(yyyy-m-d HH:mm:ss.SSS
)→DateTime型(yyyy-m-d HH:mm:ss.SSS
)→String型(yyyy年m月d日 HH時mm分ss.SSS秒
)→DateTime型(yyyy年m月d日 HH時mm分ss.SSS秒
)
という風にしたいのですが、実際には
String型(yyyy-m-d HH:mm:ss.SSS
)→DateTime型(yyyy-m-d HH:mm:ss.SSS
)→String型(yyyy年m月d日 HH時mm分ss.SSS秒
)→DateTime型(yyyy-m-d HH:mm:ss.SSS
)
と、最後になぜかもとの形式に戻ってしまいます。
この現象について、解決方法を知っている方がいましたら教えて欲しいです...
Dart
1 DateFormat formater1 = DateFormat('yyyy年m月d日 HH:mm:ss.SSS'); 2 DateFormat formater2 = DateFormat('yyyy-M-d HH:mm:ss.SSS'); 3 4 final dateTime = formater2.parseStrict(value); 5 final dateTimeStr = formater1.format(dateTime); 6 // ここでもとの形式(yyyy-M-d HH:mm:ss.SSS)に戻ってしまいます 7 print(formater1.parseStrict(dateTimeStr));

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/07/13 03:38
2023/07/13 05:36 編集
2023/07/14 01:29 編集
2023/07/14 02:43