firebase 从Firestore获取UTC格式的服务器时间戳

9w11ddsr  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(122)

我正在尝试读取我用flutter存储在firestore中的serverTimestamp。我用以下代码存储了时间戳:

final docUser =
          FirebaseFirestore.instance.collection("posts").doc(tittle_cont.text);
      final json = {
        "title": tittle_cont.text,
        "content": content_cont.text,
        "category": category,
        "date": FieldValue.serverTimestamp(), // << that's the way i did it
      };
      await docUser.set(json);

在firestore上,如果我检查我正在阅读的文档的值“date”,我会得到:
2023年2月28日,17:39:30 UTC-3 //〈〈很好,该格式适合我
但在应用程序上,要读取我使用的值:

Text("Date: " +(data['date'] as Timestamp).toDate().toLocal().toString()),

我得到的值是这样的
2023年02月38日22月26日43.287
这可能是好的,但我不喜欢这个数字。287,我更喜欢得到UTC而不是那部分。或者如果可能的话,我想得到我在firestor上看到的值,如下所示:
2023年2月28日,17:39:30 UTC-3
我一直在尝试不同的方法,但我不能解决这个问题。
我想知道如何才能做到这一点,提前感谢!!

0x6upsns

0x6upsns1#

您可以使用DateFormat表单intl

import 'package:intl/intl.dart';

Timestamp timestamp = data['date'] as Timestamp;
DateTime dateTime = timestamp.toDate();
String formattedDate = DateFormat('dd MMMM y,HH:mm:ss Z').format(dateTime);

Text("Date: " + formattedDate),

相关问题