有沒有辦法將時間添加到Timestamp格式化時間而無需多次轉換?
val seconds: Long = Timestamp.now().seconds
val utcDT = LocalDateTime.ofEpochSecond(seconds, 0, ZoneOffset.UTC)
val withTwo: LocalDateTime = utcDT.plusHours(2)
val date: Date = Date.from(withTwo.toInstant(ZoneOffset.UTC))
val new = Timestamp(date)
Log.d("sirEgghead", "Timestamp: ${Timestamp.now().toDate()}")
Log.d("sirEgghead", "utcDT: $utcDT")
Log.d("sirEgghead", "addedTwo: $withTwo")
Log.d("sirEgghead", "date: ${date.time}")
Log.d("sirEgghead", "new: ${new.toDate()}")
這是我經歷的混亂,只是增加了兩個小時并Timestamp在未來將其恢復為兩個小時的格式。
Timestamp: Wed May 18 21:53:12 EDT 2022
utcDT: 2022-05-19T01:53:12
addedTwo: 2022-05-19T03:53:12
date: 1652932392000
new: Wed May 18 23:53:12 EDT 2022
我不想使用本地系統時間,以防設備上的時間不正確。資料存盤在 Google Firestore 中。
uj5u.com熱心網友回復:
與其創建LocalDateTime實體,不如創建一個Instant實體并為其添加2小時數,使用它的plus方法TemporalUnits進行添加。
val seconds: Long = Timestamp.now().seconds
val addedSeconds = Instant.ofEpochSecond(seconds).plus(2, ChronoUnit.HOURS).epochSecond
val newTimeStamp = Timestamp(addedSeconds, 0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478036.html
上一篇:ChainCompletable和單個RxJava 改造
下一篇:從可完成到可觀察的RxJava
