flutter - 不知何故 DateTime.now() 毫秒在发送到远程数据库并从远程数据库获得响应后获得额外的小数点 - Dart/Flutter
问题描述
我正在将“Book”对象保存到 Hive 数据库,它看起来像这样:
title: Creation of Dreams
author: Kosmas Brink
publishingDate: 1998-11-02 00:00:00.000
dateAdded: 2021-06-22 19:39:48.847
lastModified: 2021-06-22 19:39:48.847
dateAdded 和 lastModified 都是 DateTime.now()
问题
Json Serializable 正在以某种方式改变我的 DateTime.now() 。当我尝试将本地数据库中的对象与远程数据库进行比较时,这会导致错误,当然相同的对象并不完全相同,因此我会收到错误消息。它在远程数据库上看起来像这样,当从远程数据库返回时:
{
"title": "Creation of Dreams",
"author": "Kosmas Brink",
"publishingDate": "1998-11-02 00:00:00.000",
"dateAdded": "2021-06-22 19:39:48.847716",
"lastModified": "2021-06-22 19:39:48.847717"
}
我的 json 序列化程序文件将 DateTime 转换为 String()。而不是 toIso8601String()。所以我不知道为什么会这样。
问题:
- 那么,为什么我会随机获得毫秒的额外精度?
- 更重要的是,有没有更好的方法,比如使用 millisecondsFromEpoch 之类的?
编辑:添加序列化程序
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
Book _$BookFromJson(Map<String, dynamic> json) {
return Book(
title: json['title'] as String,
author: json['author'] as String,
publishingDate: DateTime.parse(json['publishingDate'] as String),
dateAdded: DateTime.parse(json['dateAdded'] as String),
lastModified: DateTime.parse(json['lastModified'] as String),
);
}
Map<String, dynamic> _$BookToJson(Book instance) => <String, dynamic>{
'title': instance.title,
'author': instance.author,
'publishingDate': instance.publishingDate.toString(),
'dateAdded': instance.dateAdded.toString(),
'lastModified': instance.lastModified.toString(),
};
解决方案
推荐阅读
- git - 从 bitbucket 中的现有 git commit 创建一个新分支
- google-cloud-platform - 为什么 Dataflow 步骤无法启动?
- python - 如何产生这个输出处理字符串?
- c - C编译器gcc给出链接器命令失败错误
- rest - Yii2-Api:如何为 HttpBearer 过滤器传递 Token
- excel - 谜题:非常简单的 vlookup 不起作用
- php - 如何保护我的反馈表免受 sql 注入?
- java - 位置侦听器 onLocationChange () 方法不起作用
- r - R - Gamma 累积分布函数
- typescript - Firebase Admin SDK 错误:表达式的类型为“void”。将其作为声明放在自己的行中