質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

解決済

1回答

1517閲覧

DartでDateFormatについて

sengoku38

総合スコア27

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2022/05/09 11:08

Dartで「Mon May 09 03:39:02 +0000 2022」のようなフォーマットの日時をDateTimeに変換したいです。
pubspec.yamlでintlというパッケージを読み込んでます。

pubspec.yaml

1dependencies: 2 flutter: 3 sdk: flutter 4 intl:

以下のようなコードを書いたのですが、どちらも例外が発生します。

Dart

1import 'package:intl/intl.dart'; 2 3DateFormat('EEE MMM dd HH:mm:ss Z yyyy').parse('Mon May 09 03:39:02 +0000 2022'); 4DateFormat('EEE MMM dd HH:mm:ss ZZZZZ yyyy').parse('Mon May 09 03:39:02 +0000 2022');

E/flutter (15247): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: FormatException: Trying to read from Mon May 09 03:39:02 +0000 2022 at position 21

yyyyを取れば1970年5月9日で例外が発生しないところまで調べたのですが、これ以上解らずです。
正しいフォーマットの書き方を教えて頂けないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DateFormatはタイムゾーンに関してunimplementedになってます。
そのため+0000の解釈で例外が出ています。

at position 21

というのが多分ちょうど + の部分だと追われます。

DateFormat('EEE MMM dd HH:mm:ss yyyy').parse('Mon May 09 03:39:02 2022');
タイムゾーンがない上のような書き方だと、当然ですがうまくいきます。

今回のケースでいうと、String.splitで分割した後タイムゾーンだけ取り除いた文字列にしてパースするのかな。
もしタイムゾーンの調整が必要なら、その部分をInt.parseした値を使って、DateTime.addもしくはDateTime.subtractして時間調整をするとか。

投稿2022/05/09 12:58

ta.fu

総合スコア1667

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sengoku38

2022/05/09 13:42

ありがとうございます。 ネットで見たサンプルでタイムゾーンをZで処理していたので、できるものだと勘違いしておりました。 大変ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問