将日期转换为firetstore时间戳

时间:2019-12-30 17:42:28

标签: android kotlin google-cloud-firestore timestamp

我想将很长的日期转换为Firestore时间戳

object TimeStampConverter {

fun convertToTimeStamp(months: Int, year: Int): Date? {
    val date = Calendar.getInstance()
    date[Calendar.YEAR] = year // Set the year you want
    date[Calendar.MONTH] = months
    return date.time
}}

我想将TimeStampConverter函数返回的date.time转换为Firestore时间戳。

1 个答案:

答案 0 :(得分:1)

首先,Firestore时间戳是在服务器上生成的,正如道格·史蒂文森(Doug Stevenson)在其评论中提到的那样,它可以存储小至纳秒的时间单位。

但是,如果要将年月转换为Firestore Timestamp对象,则天,小时,分钟,秒和纳秒的成分将始终为0。这是因为这些成分根本不存在根本就没有,因为您只使用年和月。 0只是在这种情况下使用的默认值。

  

我作为android想要更新此Firebase时间戳字段,以便我们应使用哪种数据类型

正如有关Firestore data types的官方文档中所述,保存时间和日期的最合适方法是Date,如我在以下帖子中的回答所述:

现在,如果要将Timestamp对象转换为Date对象,则意味着在将Date对象转换为Timestamp对象时,转换范围变窄(失去了纳秒精度)。 _renderItem = item => { const Item = withSwipeDelete( <div>{item.id}</div>, () => console.log('callback') ) return <Item key={item.id} /> // add key here } 对象意味着您正在扩大转换范围。在这种情况下,就像前面提到的那样,添加了新的精度,并用零填充丢失的数据。