Dart:intl не работает? / DateFormat для сложного

Я использую Dart Editor 0.3.7_r18717 (означает, что редактор обновлен (февраль 2013 г.)

import 'dart:intl';

Выдает ошибку "Не удается найти указанный источник"

Если я импортирую пакет через pub

import 'package:intl/intl.dart';

затем компиляция в JS dart2js завершается с некоторыми странными ошибками...

Я хочу просто что-то вроде этого:

final String time = new DateFormat("HH:mm:ss","de").format(new DateTime.now());

Вообще непонятно, зачем нужна локаль в таком случае...

Спасибо

[Обновить]
ОК, я знаю, что "странные ошибки" ничего не значат, поэтому вот результат, если я импортирую следующие два пакета:

import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';

String getTime() {
    final String time = new DateFormat("HH:mm:ss","en_US").format(new DateTime.now());
    //final String time = "20:05:00";
return time;
}

Вывод:

Running dart2js...
Using snapshot /Developer/dart/dart-sdk/lib/_internal/compiler/implementation/dart2js.dart.snapshot
Wrote /Users/mikemitterer/dart/WebSockets.SAMPLE/web/out/jrelaisui.html_bootstrap.dart.js [410.0kb written in 5.3 seconds]
build.dart --machine --changed=web/jrelaisui.dart
file:/Users/mikemitterer/dart/WebSockets.SAMPLE/build.dart
build.dart returned error code 255

Uncaught Error: NoSuchMethodError : method not found: '_addFromInteger@0x36924d72'
Receiver: null
Arguments: [80]
Stack Trace:
    #0      Object.noSuchMethod (dart:core-patch:1737:25)
    #1      int.+ (dart:core-patch:1324:33)
    #2      Parser.translateCharacter    (package:analyzer_experimental/src/generated/parser.dart:4380:167)
    #3      Parser.computeStringValue (package:analyzer_experimental/src/generated/parser.dart:376:33)
    #4      Parser.parseStringLiteral (package:analyzer_experimental/src/generated/parser.dart:3451:76)
    #5      Parser.parsePrimaryExpression (package:analyzer_experimental/src/generated/parser.dart:3163:32)
    #6      Parser.parseAssignableExpression (package:analyzer_experimental/src/generated/parser.dart:837:51)
    #7      Parser.parsePostfixExpression (package:analyzer_experimental/src/generated/parser.dart:3061:51)

...

Выходные данные – источник очистки:

build.dart --machine --clean
file:/Users/mikemitterer/dart/HelloWebComponent/build.dart
build.dart returned error code 255

'package:html5lib/src/encoding_parser.dart': Error: line 65 pos 14: class 'EncodingBytes' overrides function 'skip' of super class 'Iterable' with incompatible parameters
  String skip([CharPreciate skipChars]) {
             ^

build.dart --machine --clean
file:/Users/mikemitterer/dart/todomvc/build.dart
build.dart returned error code 255

'package:html5lib/src/encoding_parser.dart': Error: line 65 pos 14: class 'EncodingBytes' overrides function 'skip' of super class 'Iterable' with incompatible parameters
  String skip([CharPreciate skipChars]) {

...

Вот что я имею в виду под "странным" :-)


person Mike Mitterer    schedule 22.02.2013    source источник
comment
Последняя ошибка, кажется, намекает на то, что некоторые пакеты могут быть устаревшими? Или не согласовывайтесь с версией SDK, которую вы используете...   -  person Kai Sellgren    schedule 23.02.2013


Ответы (2)


Синтаксис пакета правильный, это должно работать:

import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';

main() {
  print(new DateFormat.yMd().format(new DateTime.now()));
}

О каких "странных ошибках" вы говорите?

person Kai Sellgren    schedule 22.02.2013
comment
Я также получаю эти ошибки. Похоже, это связано с тем, что библиотека intl не соответствует последней версии SDK. :/ - person Kai Sellgren; 03.03.2013

импортировать «дротик: межд.»; не получится импортировать его, потому что это не одна из «основных» библиотек дартс, ее нужно импортировать как пакет. Ошибки, которые вы перечисляете в dart2js, выглядят не так, как будто они исходят из кода интернационализации, а из web_ui и из пакета Analyzer_experimental. Что произойдет, если вы закомментируете строки, использующие интернационализацию, и скомпилируете с помощью dart2js?

person Alan Knight    schedule 24.02.2013