我无法找到解决方案,我从firebase获取数据,其中一个字段是时间戳,看起来像这样 - > 1522129071.在swift我能够转换它并使其可读但我不能由于我不知道所有的类和谷歌没有帮助什么不是,所以将代码转换为飞镖.
SWIFT:
func readTimestamp(timestamp: Int) {
let now = Date()
let dateFormatter = DateFormatter()
let date = Date(timeIntervalSince1970: Double(timestamp))
let components = Set<Calendar.Component>([.second, .minute, .hour, .day, .weekOfMonth])
let diff = Calendar.current.dateComponents(components, from: date, to: now)
var timeText = ""
dateFormatter.locale = .current
dateFormatter.dateFormat = "HH:mm a"
if diff.second! <= 0 || diff.second! > 0 && diff.minute! == 0 || diff.minute! > 0 && diff.hour! == 0 || diff.hour! > 0 && diff.day! == 0 {
timeText = …Run Code Online (Sandbox Code Playgroud) My Dto 的结构就像 -
@freezed
abstract class MessageDto with _$MessageDto{
factory MessageDto({
String message,
@JsonKey(name: 'message_type') String messageType,
@JsonKey(name: 'sender_id') String senderId,
@JsonKey(name: 'sent_at') Timestamp sendAt,
}) = _MessageDto;
factory MessageDto.fromFirestore(DocumentSnapshot doc) {
Map<String, dynamic> json = doc.data;
return MessageDto.fromJson(json);
}
factory MessageDto.fromJson(Map<String, dynamic> json) => _$MessageDtoFromJson(json);
}
Run Code Online (Sandbox Code Playgroud)
未处理的异常:类型“Timestamp”不是类型转换中类型“String”的子类型
我正在为我和我的团队正在开发的应用程序寻求帮助。我们面临以下问题数周:
flutter type 'Timestamp' is not a subtype of type 'DateTime'
Run Code Online (Sandbox Code Playgroud)
我们想从Cloud Firestore获取这些用户数据:
Cloud Firestore 中仅将出生和执照作为 [Timestamp] 存储,因此我们将这些数据解析为 [DateTime]。
这是我们获取用户数据的代码:
import 'package:cloud_firestore/cloud_firestore.dart';
class User{
final String _name;
final String _gender; // 'homme' or 'femme' or 'autre'
final DateTime _birth;
final DateTime _license;
final double _weight;
final int _size;
DocumentReference ref;
User(this._birth,this._gender,this._license,this._name,this._size,this._weight,this.ref);
User.fromMap(Map<String, dynamic> map, {this.ref})
: assert(map['name'] != null && map['gender'] != …Run Code Online (Sandbox Code Playgroud) 我在firebase中有时间戳项。我从 dart 代码时间戳类型获取项目。它显示为 'Timestamp(seconds=1590903768, nanoseconds=26999000)' 原样。
我想在我的申请中只显示“2020-06-01”或“06-01”之类的日期。
请给我建议。