我想将很长的日期转换为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时间戳。
答案 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
}
对象意味着您正在扩大转换范围。在这种情况下,就像前面提到的那样,添加了新的精度,并用零填充丢失的数据。