我在Firestore文档中有一个时间戳记字段。(请参阅created_at)
我想将其传递到服务器的Datetime Zulu时间格式,如下所示。
2019-10-31T10:29:45Z
如何将Firestore时间戳转换为Zulu时间格式字符串?
这是我在Firebase中的onCreate函数,在Firestore中创建文档后,我读取了timestamp字段并打印到控制台
exports.createRecord = functions.firestore
.document(`record/{recordId}`)
.onCreate(async (snap, context) => {
console.log(snap.data().created_at);
});
这将显示在Firebase功能日志中
Timestamp { _seconds: 1573496322, _nanoseconds: 897429000 }
如何将其转换为以下形式:
2019-11-01T01:36:56.233018Z
2019-01-01T00:00:00Z
2019-10-31T10:29:45Z
Firestore时间戳记对象不是JavascriptDate
对象的扩展。但是它包含一个toDate
获取常规Date
对象的方法,您可以使用该方法轻松地将所需日期格式化为字符串。
云功能在没有时区偏移(UTC时间)的情况下运行。因此,当您格式化日期时,可以有效地获得Zulu时间。使用toISOString
得到的想要格式的字符串
toISOString()方法返回简化的扩展ISO格式(ISO 8601)的字符串,该字符串始终为24或27个字符(YYYY-MM-DDTHH:mm:ss.sssZ或±YYYYYY-MM-DDTHH:mm:ss)。 sssZ)。时区始终为零UTC偏移,如后缀“ Z”所示。
尝试将上面的代码更改为此,您将看到期望的输出。
exports.createRecord = functions.firestore
.document(`record/{recordId}`)
.onCreate(async (snap, context) => {
console.log(snap.data().created_at.toDate().toISOString());
});
额外资源
如果您更需要操纵日期或使用时区,那么Moment JS是一个很棒且易于使用的库。它增加了函数依赖性的一些开销,但确实有助于提高代码的可读性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句