首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kotlin中为API级别小于或等于16创建Date对象

在Kotlin中为API级别小于或等于16创建Date对象
EN

Stack Overflow用户
提问于 2019-10-18 18:58:58
回答 3查看 6.2K关注 0票数 5

这听起来可能很有趣,也很基本,但我很难在Kotlin中创建一个DateTime类型的对象,方法是将秒数从一个时代传递到它。

我得到的例子要么是需要API级别26的库,要么只是讨论从DD-MM-YYYY字符串到其他字符串的格式转换。

到目前为止,我尝试过"LocalDateTime“、”时间戳“、"Date”,但是Kotlin要么拒绝识别它们,要么不同意函数参数,或者无法解决名称空间冲突。或者是Java的例子,它在Kotlin中不起作用,在Kotlin中也没有等价的。

对于Date(),我得到了错误“不能访问”:它在Date()中是私有的

使用LocalDate,LocalDateTime,我得到API级别错误

使用时间戳,我将得到错误“提供的参数不能调用以下任何函数”。我传递的是文档中提到的参数。但它期待的是“包裹”或“日期”。

有人能帮忙吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-18 19:11:17

我用日历写Kotlin

代码语言:javascript
复制
val date = Calendar.getInstance()
date.timeInMillis = 5000000
txtDate.text = date.time.toString()
票数 1
EN

Stack Overflow用户

发布于 2019-10-18 20:53:10

更新:在最新版本的工具中,API为较早版本的安卓带来了许多内置在Android26及更高版本中的java.time功能。

tl;dr

  • 使用java.time类。

不要在您的项目中使用SimpleDateFormat.

  • Add、Calendar或库。

避免遗留日期-时间类

遗留类(如Date & Calendar )非常糟糕,是由不了解日期时间处理的人创建的。这些类几年前被定义在JSR 310中的现代java.time类所取代。

java.time

Instant类替换了Date类,这两个类都表示UTC中的某个时刻(偏移量为零小时-分钟-秒)。

代码语言:javascript
复制
Instant instant = Instant.now() ;  // Capture the current moment in UTC.

Calendar类,或者更准确地说,它最常用的具体子类GregorianCalendarZonedDateTime取代。

代码语言:javascript
复制
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). 

转换

最好完全避免遗留日期-时间类。但有时您可能需要与尚未更新为java.time的旧代码进行互操作。在这种情况下,皈依。查看添加到旧类中的新的to…/from…转换方法。

代码语言:javascript
复制
Calendar calendar = GregorianCalendar.from( zdt ) ;

…和…

代码语言:javascript
复制
ZonedDateTime zdt = ( ( GregorianCalendar ) calendar ).toZonedDateTime() ;

回港

java.time类被内置到Java8及更高版本以及Android26及更高版本中。

对于Java6& 7,使用项目中的后端端口。大多数java.time功能都在那里找到。这个项目是由同一个人领导的java.time项目和JSR 310,Stephen Colebourne

对于26岁之前的Android,可以使用项目的支持端口对Android进行调整。

票数 10
EN

Stack Overflow用户

发布于 2019-10-18 19:06:13

这个对你有用吗?

代码语言:javascript
复制
Instant.fromEpochSeconds(<number>)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58456737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档