相关疑难解决方法(0)

Dart/Flutter:转换时间戳

我无法找到解决方案,我从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)

dart flutter

16
推荐指数
12
解决办法
3万
查看次数

如何将具有时间戳字段的firestore doc数据转换为通过Freezed dart包生成的数据类?

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)
  1. 生成器不支持时间戳数据类型。
  2. 当我使用 DateTime dataType 时,它​​正在生成代码,但在解析 documentSnaphot 数据时抛出异常

未处理的异常:类型“Timestamp”不是类型转换中类型“String”的子类型

dart flutter

6
推荐指数
1
解决办法
2097
查看次数

Flutter 问题:“Timestamp”类型不是“DateTime”类型的子类型

我正在为我和我的团队正在开发的应用程序寻求帮助。我们面临以下问题数周:

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)

timestamp dart firebase flutter google-cloud-firestore

2
推荐指数
1
解决办法
3962
查看次数

如何使用flutter将时间戳从firebase转换为DateTime

我在firebase中有时间戳项。我从 dart 代码时间戳类型获取项目。它显示为 'Timestamp(seconds=1590903768, nanoseconds=26999000)' 原样。

我想在我的申请中只显示“2020-06-01”或“06-01”之类的日期。

请给我建议。

dart firebase flutter

2
推荐指数
1
解决办法
5058
查看次数