java在kotlin中使用时间的最佳方式是什么?
我正在使用Kotlin开发一个Android应用程序,我希望实现以下目标:
- 让用户选择从当前时间到接下来24小时的警报时间(hh:mm) e、 g.在16:00,用户希望在明天15:00发出警报
- 一旦用户设置了警报,我想显示激活警报之前的剩余时间(hh:mm) e、 g.显示一个小对话框,文本为:3小时:15分钟
在Kotlin中处理时间操作(将当前时间减去警报时间)的最佳方法是什么强>
你可以在下面搜索框中键入要查询的问题!
我正在使用Kotlin开发一个Android应用程序,我希望实现以下目标:
在Kotlin中处理时间操作(将当前时间减去警报时间)的最佳方法是什么强>
# 1 楼答案
根据Basil Bourque的说法,以下是他提出的(Java)转换成Kotlin的代码,以防有人感兴趣
# 2 楼答案
关于堆栈溢出,您的所有问题都已被多次询问和回答。所以我会很简短。搜索以了解更多信息
只使用java。时间类,而不是像
Date
和Calendar
这样糟糕的遗留类对于26岁之前的Android,请参阅ThreeTen Backport库及其Android特定的包装器ThreeTenABP
用
LocalTime
表示一天中的某个时间获取当前时刻。需要时区。像
CST
这样的2-4个字母的代码不是实时时区。真正的区域被命名为Continent/Region
比较时间部分。提取一个
LocalTime
进行比较确定下一个报警时间
或者如果第二天需要,明天
计算经过的时间。通过提取
Instant
来调整UTC生成标准ISO 8601格式的字符串
或者通过调用
Duration::to…Part
方法生成另一种格式的字符串至于触发警报,在纯Java中使用执行器框架,特别是
ScheduledExecutorService
。这个框架使运行后台线程在某个时刻触发任务Runnable
变得简单。几乎可以肯定的是,CPU上的垃圾收集或线程/进程调度可能会出现轻微延迟,但对于商业应用程序来说已经足够了(对于NASA来说还不够好)安卓还可能提供一些报警设置功能。(我不知道)
永远不要从后台线程访问或操作用户界面。使用Android提供的任何钩子从另一个线程更新UI,例如刷新UI小部件或显示通知