将JSON日期加载到Dart DateTime

cur*_*urt 4 json dart angular-dart

我有一个提供MySQL日期的Rails服务器。我的课程是基于AngularDart教程设置的。它似乎无法正确加载。

我的artist_service。飞镖方法:

  Future<List<Record>> getArtistsRecords(int id) async {
    String url = 'http://catbox.loc/artists/${id.toString()}/records'; // Rails: artists/:id/records
    try {
      HttpRequest response = await HttpRequest.request(
          url, requestHeaders: headers);
      List data = JSON.decode(response.responseText);
      final records = data
          .map((value) => new Record.fromJson(value))
          .toList();
      return records;
    }
    catch (e) {
      throw _handleError(e);
    }
  }
Run Code Online (Sandbox Code Playgroud)

我的artist.dart工厂方法:

  factory Record.fromJson(Map<String, dynamic> record) =>
  new Record(_toInt(record['id']),
      record['title'],
      record['catalog'],
      record['artist_id'],
      record['label_id'],
      record['style_id'],
      record['alternate_catalog'],
      record['recording_date'],
      record['notes'],
      record['penguin'],
      record['category']
  );
Run Code Online (Sandbox Code Playgroud)

令人反感的元素是recording_date,它声明为DateTime。当我在HTML中包括作为{{recording_date}}我得到1958-03-09的例子。如果我尝试,{{ recording_date | date}}它会以无效格式错误显示。我怀疑我没有DateTime正确设置对象。可以使用工厂方法来这样做吗?

Gün*_*uer 5

更改

record['recording_date'],
Run Code Online (Sandbox Code Playgroud)

DateTime.parse(record['recording_date']),
Run Code Online (Sandbox Code Playgroud)