gpt4 book ai didi

time - 如何将 Firestore 时间戳打印为格式化的日期和时间

转载 作者:行者123 更新时间:2023-12-03 02:38:50 25 4
gpt4 key购买 nike

我的时间戳返回 Timestamp(seconds=1560523991, nanoseconds=286000000)在 Flutter Firestore 快照中。

我想将其打印为格式正确的日期和时间。

我正在使用 DateTime.now()在创建新记录并使用 Firestore 快照检索时将当前 DateTime 存储在 Firestore 中,但我无法转换为格式化的日期时间。我正在使用 lib intl.dart用于格式化。

保存数据的代码

       d={'amount':amount,
'desc':desc,
'user_id':user_id,
'flie_ref':url.toString(),
'date':'${user_id}${DateTime.now().day}-${DateTime.now().month}-${DateTime.now().year}',
'timestamp':DateTime.now()
return Firestore.instance.collection('/data').add(d).then((v){return true;
}).catchError((onError)=>print(onError));
});

Accessing with

FutureBuilder(
future: Firestore.instance
.collection('data')
.where('user_id', isEqualTo:_user_id)
.getDocuments(),
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData)
return Container(
child: Center(child: CircularProgressIndicator()));
return ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (BuildContext context, int index) {
return Column(
children: <Widget>[
Text(DateFormat.yMMMd().add_jm().format(DateTime.parse(snapshot.data.documents[index].data['timestamp'].toString())]);


....

抛出的错误是

Invalid date format.



我期待输出是: 'Jan 17, 2019, 2:19 PM'

最佳答案

当我们将 DateTime 对象推送到 Firestore 时,它​​会在内部将其转换为它自己的时间戳对象并存储它。

从 Firestore 获取时间戳后将其转换回日期时间的方法:

Firestore 的时间戳包含一个名为 toDate() 的方法,该方法可以转换为 String,然后可以将该字符串传递给 DateTime 的 parse 方法以转换回 DateTime

DateTime.parse(timestamp.toDate().toString())

关于time - 如何将 Firestore 时间戳打印为格式化的日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56627888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com