2016-03-23 21 views
1

Dart projemde intl paketini kullanmaya başladım. başlatılmasının bu paketi kullanmak sonra ben bu kodu kullanın:intl paket ve tarih biçimlendirmesi garip davranışı

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

Ve düzgün çalışır. i intl kullandıktan sonra i günlüğüne bu mesajı almak:

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

i bu şekilde bu kullanım çözdük

+0

1.15.0

  • intl. dosyanın başlığında intl'nin bir kısmını görüyorum; –

  • +0

    @ThierryTemplier Dart 'intl', JS' intl' ile ilgili değildir. –

    +0

    Kodunuz '2016-03-23T10: 39: 03Z' için yazdırıyor. Hangi çizgi özel durumunuza sebep olur? 'Pubspec.lock' dosyasında' intl 'hangi sürüm var? –

    cevap

    0

    bu kod snippet'indeki yerel geçmelidir neden anlayamıyorum:

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

    Ama bunu desteklemem için kullandığım dart dosyasına yapmalıyım:

    i eksik var önce: Daha fazla bilgi için

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

    i kullanın:

    • dart o date_format.dart bulunan 0.12.7
    +0

    İlginç. Neden olmadan benim için çalışırken buna ihtiyacın var. Hangi işletim sistemini kullanıyorsunuz? –

    +0

    Boring OSX son sürümü -_- –

    +2

    Evet, kullanabilmeniz için önce belirli bir yerel ayarın formatını başlatmanız gerekiyor. Bazı durumlarda, veriler zaten yüklenmiştir, ancak diğerlerinde (verilerin çoğunlukla çok fazla yer kaplayabildiği mesajlar), kullanmadan önce verileri yüklemesi gerekebilir. Genellikle, her yerel ayar için yalnızca kullanıcının yerel ayarı için olan tüm iletileri başlatamazdınız. –