将 JSON 日期加载到 Dart DateTime
Load JSON date to Dart DateTime
我有一个 Rails 服务器正在传送 MySQL 日期。我的 class 是根据 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);
}
}
我的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']
);
违规元素是 recording_date
,声明为 DateTime
。例如,当我在 html 中包含 {{recording_date}}
时,我得到 1958-03-09
。如果我尝试 {{ recording_date | date}}
,它会作为无效格式出错。我怀疑我没有正确设置 DateTime
对象。用工厂方法可以吗?
改变
record['recording_date'],
至
DateTime.parse(record['recording_date']),
我有一个 Rails 服务器正在传送 MySQL 日期。我的 class 是根据 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);
}
}
我的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']
);
违规元素是 recording_date
,声明为 DateTime
。例如,当我在 html 中包含 {{recording_date}}
时,我得到 1958-03-09
。如果我尝试 {{ recording_date | date}}
,它会作为无效格式出错。我怀疑我没有正确设置 DateTime
对象。用工厂方法可以吗?
改变
record['recording_date'],
至
DateTime.parse(record['recording_date']),