2016-03-23 16 views
1

私のダーツプロジェクトでintlパッケージを使い始める。intlパッケージと日付書式異常な動作

DateTime now = new DateTime.now(); 
    var formatter = new DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
    String nowFormatted = formatter.format(now); 

そして、それが正常に動作します:私はこのコードを使用して、このパッケージを使用するには、開始後 。私は国際空港を使用した後 私はログにこのメッセージを得る:

Uncaught LocaleDataException: Locale data has not been initialized, call initializeDateFormatting(<locale>). 

私はこのように、この使用解決した

+0

1.15.0

  • 国際空港。ファイルのヘッダーにはintlの一部があります。 –

  • +0

    @ThierryTemplierダーツ 'intl'はJS'intl'とは関係ありません。 –

    +0

    あなたのコードは私のために '2016-03-23T10:39:03Z'を表示します。例外を引き起こす行はどれですか?あなたの 'pubspec.lock'ファイルに' intl'のどのバージョンがリストされていますか?興味深い。 –

    答えて

    0

    このコードスニペットでロケールを渡す必要があり、なぜ私が理解することはできません。

    DateTime now = new DateTime.now(); 
    var formatter = new DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", 'en'); 
    String nowFormatted = formatter.format(now); 
    

    しかし、私はあなたのサポートを設定するために使用される私のダーツファイルにこれを作る:

    library translation_helper; 
    
    import 'dart:async'; 
    import 'package:intl/date_symbol_data_local.dart'; 
    import '../../resources/messages_all.dart'; 
    
    
    void setupLanguage(){ 
        //var germanDatesFuture = initializeDateFormatting('de_DE', null); 
        var enDatesFuture = initializeDateFormatting('en', null); 
        var germanMessagesFuture = initializeMessages('de'); 
        var englishMessagesFuture = initializeMessages('en'); 
        var italianMessagesFuture = initializeMessages('it'); 
        var polishMessagesFuture = initializeMessages('pl'); 
        Future 
         .wait([ 
        enDatesFuture, 
        germanMessagesFuture, 
        englishMessagesFuture, 
        italianMessagesFuture, 
        polishMessagesFuture 
        ]); 
    } 
    

    は、私が行方不明ている前に:詳細情報については

    var enDatesFuture = initializeDateFormatting('en', null); 
    

    私が使用します。

    • ダーツそれはdate_format.dartに含まれる0.12.7
    +0

    あなたがなぜそれが必要なのですか?あなたはどのOSを使用していますか? –

    +0

    退屈なOSXの最後のバージョン-_- –

    +2

    はい、特定のロケールのフォーマットを使用する前に初期化する必要があります。場合によっては、データはすでにロードされていますが、他のもの(最も一般的なメッセージでは、データが多くの領域を占める可能性があります)では、使用する前にデータをロードする必要があります。通常は、すべてのメッセージをユーザーのロケール用のロケールごとに初期化しません。 –