Muk*_*iya 4 datetime android timestamp date kotlin
这听起来可能非常有趣和基本,但我正在努力通过将纪元的秒数传递给它来在 Kotlin 中创建 DateTime 类型的对象。
我得到的例子要么是需要 API 级别 26 的库,要么只是谈论从 DD-MM-YYYY 字符串到其他格式的格式转换。
到目前为止,我已经尝试过“LocalDateTime”、“Timestamp”、“Date”,但 Kotlin 要么拒绝识别它们,要么不同意函数参数,要么无法解决命名空间冲突。或者示例是 Java 的,它在 Kotlin 中不起作用或在 Kotlin 中没有等效项。
使用 Date() 我收到错误“无法访问 '':它在 Date() 中是私有的”
使用 LocalDate、LocalDateTime,我收到 API 级别错误
使用 Timestamp 时出现错误“无法使用提供的参数调用以下任何函数”。我将 Long 作为参数传递,如文档中所述。但它期待“包裹”或“日期”。
有人可以帮忙吗?
Bas*_*que 10
更新:在最新版本的 Android 工具中,API 脱糖为旧版本的 Android 带来了 Android 26 及更高版本中内置的大部分java.time功能。
Date, Calendar, 或SimpleDateFormat。像Date&这样的遗留类Calendar很糟糕,是由不了解日期时间处理的人创建的。这些类在多年前被现代java.time取代JSR 310 中定义类所。
的Instant类替换Date类,均代表在UTC的力矩(零小时-分钟-秒的偏移量)。
Instant instant = Instant.now() ; // Capture the current moment in UTC.
Run Code Online (Sandbox Code Playgroud)
该Calendar级,或者更确切地说,其最常用的具体子类GregorianCalendar所取代ZonedDateTime。
ZoneId z = ZoneId.of( "America/Montreal" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ; // Capture the current moment as seen in the wall-clock time used by the people of a particular region (a time zone).
Run Code Online (Sandbox Code Playgroud)
最好完全避免遗留日期时间类。但有时您可能需要与尚未更新为java.time 的旧代码进行互操作。在这种情况下,转换。查看添加到旧类的新to…/from…转换方法。
Calendar calendar = GregorianCalendar.from( zdt ) ;
Run Code Online (Sandbox Code Playgroud)
…和…
ZonedDateTime zdt = ( ( GregorianCalendar ) calendar ).toZonedDateTime() ;
Run Code Online (Sandbox Code Playgroud)
该java.time类是建立在Java 8和更高版本,而Android 26及更高版本。
对于 Java 6 和 7,请使用ThreeTen-Backport项目中的后向端口。大多数java.time功能都可以在那里找到。该项目由领导java.time项目和 JSR 310的同一个人Stephen Colebourne领导。
对于 26 之前的 Android,使用该后端移植到 Android 的适配,即ThreeTenABP项目。
小智 1
我使用 Kotlin 日历
val date = Calendar.getInstance()
date.timeInMillis = 5000000
txtDate.text = date.time.toString()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4225 次 |
| 最近记录: |