在 Android Jetpack Compose 中使用 MaterialDatePicker 返回的日期为 Long 型时间戳。
我想将其转换为 LocalDate 类型。
datepicker 返回的数据类型
1630195200000
data class convertor 存入本地数据库的数据类型
1630195200
其对应的转换函数:
@TypeConverter
fun dateToTimestamp(date: LocalDate?): Long? {
val zoneId: ZoneId = ZoneId.systemDefault()
return date?.atStartOfDay(zoneId)?.toEpochSecond()
}
在线查看当前时间戳
https://www.unixtimestamp.com/
将 1630195200 转换为可读的时间:
Format: Seconds
GMT: Sun Aug 29 2021 00:00:00 GMT+0000
Your Time Zone: Sun Aug 29 2021 08:00:00 GMT+0800 (中国标准时间)
LocalDate 如何用整型时间戳数字来初始化
// long to LocalDate
val date = Instant.ofEpochMilli(it).atZone(ZoneId.systemDefault()).toLocalDate();
由于 LocalDate 只有 ofEpochDay 函数,从天数转换为 LocalDate。
val date = LocalDate.ofEpochDay(days)
也没有 ofEpochSecond 函数,只有 LocalDateTime 有这个功能。所以只能使用上面的方法。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式