java - 如何在 kotlin hashmap 中添加双精度类型?
问题描述
我有代码:
val value: HashMap<String, Any> = hashMapOf()
value["sender_id"] = userId!!
value["name"] = firstname!!
value["text"] = et_search_box.text.toString()
value["avatar"] = avatar!!
value["date"] = ServerValue.TIMESTAMP.toDouble()
如何将日期类型加倍?
解决方案
Firebase Timestamp有两个特定的函数getSeconds()和getNanoseconds()来解析任何其他单位的时间。
例如,以秒为单位获得高达 9 位精度(纳秒精度)的时间
val timestampInSeconds: Double = ServerValue.TIMESTAMP.run {
getSeconds().toDouble + getNanoseconds.toDouble() / 1_000_000_000
}
这是非常准确的,但是时间戳通常以毫秒表示,如果您愿意,可以轻松地将其反序列化为 Date 对象,例如java.util.Date使用毫秒值来评估日期对象。
要获得标准毫秒值:
val stdTimestampMillis: Long = ServerValue.TIMESTAMP.toDate().getTime()
// to deserialize it to Timestamp/Date object later
val date: Date = Date(stdTimestampMillis)
val timestamp: Timestamp = Timestamp(date)
推荐阅读
- spring - Spring JDBC with PostgreSQL native query with list as a parameter不起作用
- reactjs - 如何在 PWA 应用程序的 SPA shell 中动态加载 html 部分
- javascript - 我无法为 Vue cli 安装工作做 Vue Select 组件
- python - 将kafka从python应用程序内的主机与docker连接
- node.js - 通过 socket.io 广播大数据的最佳方式是什么
- javascript - 对 knockoutJS 上的隐藏字段进行验证
- javascript - 将js转换为php
- angular - 如何用角度的json数组值填充html表?
- visual-studio-2015 - 在 D3D11RenderSystem::D3D11RenderSystem 中创建 Direct3D11 设备失败
- python - Bot 没有响应我的命令 | 不和谐.py