【问题标题】:Firestore Timestamp format in android vs firebase functionandroid vs firebase函数中的Firestore时间戳格式
【发布时间】:2020-04-07 22:05:36
【问题描述】:

在我的平台上,firestore 时间戳在

时间:2020 年 4 月 7 日下午 12:07:16 UTC+5:30

由安卓客户端使用以下代码创建:

createdAt = new Timestamp(new Date());

尝试从 Firebase 云函数内部创建上述日期格式,但它返回以下格式的日期

t : "2020-04-07T20:35:08.717Z"

使用代码

t: new Date().toISOString()

也试过

Firestore.Timestamp.now();

有人可以帮忙了解如何获取与android中格式相同的日期

确切的代码是云函数中的对象填充,并以上述不兼容的格式返回时间

let messagePayload = {
          msg:"A test message",
          mt:"text",
          pm:"",
          pmdi:"",
          sb:"1908392XXXX",
          sdi:"Ichthyocentaurs",
          t: new Date().toISOString() 
        }

【问题讨论】:

    标签: firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    您在 Android 上看到的格式高度特定于设备配置运行的语言环境,并且会因语言和时区而有很大差异。此默认字符串格式通常不应用于除调试目的之外的任何其他用途。

    您在 JavaScript 中看到的格式旨在传输格式化为字符串的日期,以便在系统之间共享,而不是用于显示。

    如果您想要 JavaScript 中的特定日期格式,我强烈建议您使用一些库或实用程序以可预测的方式按照您认为合适的方式格式化日期和时间。 JavaScript 没有内置任何“好的”日期格式化功能。而是考虑使用momentjs 之类的东西来准确指定您想要的字符串格式。

    对于您的具体情况,如果您尝试将日期发送到 android 客户端应用程序,我也强烈建议您在后端不要格式化,而是使用日期格式Android 平台内置的实用程序(例如DateFormat)。默认的 Java 日期字符串格式几乎肯定不是您想要的。您将能够使用 Android 设备上提供的区域设置来格式化日期,这可能是用户喜欢的设置,具体取决于他们的设置。

    【讨论】:

      猜你喜欢
      • 2018-12-27
      • 2020-03-21
      • 2020-02-28
      • 1970-01-01
      • 2020-07-24
      • 2019-09-25
      • 2019-03-22
      • 1970-01-01
      相关资源
      最近更新 更多