提问人:Zar E Ahmer 提问时间:6/18/2020 最后编辑:Zar E Ahmer 更新时间:6/19/2020 访问量:571
使用 joda 显示时间间隔(以分钟为单位) 在日历中显示的日期时间
Display time interval in minutes using joda Date time to display in Calendar
问:
我想显示 15 分钟或 30 分钟的时间间隔列表,例如
喜欢
1:00
1:15
1:30
1:45
或
1:00
1:30
2:00
2:30
下面的代码使用 Joda Date 时间库,它显示时间间隔为小时。我只想以 15 或 30 分钟的间隔显示时间。
val hourDateTime = DateTime().withDate(2000, 1, 1).withTime(0, 0, 0, 0)
for (i in 1..23) {
val formattedHours = Formatter.getHoursWithMinutes(context!!, hourDateTime.withHourOfDay(i))
}
格式化程序.kt
fun getHoursWithMinutes(context: Context, dateTime: DateTime) = dateTime.toString("h:mm a")
而不是显示 1:00 、2:00 、3:00 、4:00 等日期,以 15 或 30 分钟的间隔显示
我尝试了下面写的另一种方法,但这个时间间隔发生了变化,但小时保持不变,就像
12:00 -> 12:30 -> 12:00 -> 12:30
val hourDateTime = DateTime().withDate(2000, 1, 1).withTime(0, 0, 0, 0)
var interval = 30
for (i in 1..23) {
if(i == 1 ) interval = 0
val formattedHours = Formatter.getHoursWithMinutes(context!!, hourDateTime.withMinuteOfHour(interval) )
interval += 30
if(interval == 60) interval = 0
}
答:
0赞
Anonymous
6/19/2020
#1
java.time 和 ThreeTenABP
我不会写 Kotlin。请从我的 Java 翻译。
Duration interval = Duration.ofMinutes(15);
LocalTime time = LocalTime.of(1, 0);
for (int i = 0; i < 10; i++) {
System.out.println(time);
time = time.plus(interval);
}
输出:
01:00 01:15 01:30 01:45 02:00 02:15 02:30 02:45 03:00 03:15
将间隔设置为获取 01:00、01:30 等。Duration.ofMinutes(30)
我正在通过向后移植使用 java.time,即现代 Java 日期和时间 API,见下文。java.time 是 Joda-Time 的继任者。我敢肯定,如果您已经在使用 Joda-Time 并且现在不想迁移到 java.time,Joda-Time 也可以实现与上述非常相似的事情。
问:java.time 不需要 Android API 级别 26 吗?
java.time 在较旧和较新的 Android 设备上都能很好地运行。它至少需要 Java 6。
- 在 Java 8 及更高版本以及较新的 Android 设备(从 API 级别 26 开始)上,内置了现代 API。
- 在非 Android Java 6 和 7 中,获取 ThreeTen 向后移植,即现代类的向后移植(JSR 310 为 ThreeTen;请参阅底部的链接)。
- 在(较旧的)Android 上,使用 Android 版本的 ThreeTen Backport。它被称为 ThreeTenABP。并确保从子包中导入日期和时间类。
org.threeten.bp
链接
- Oracle 教程:解释如何使用 java.time 的日期时间。
- Java 规范请求 (JSR) 310,其中首次被描述。
java.time
- ThreeTen 向后移植项目,向后移植到 Java 6 和 7(ThreeTen 用于 JSR-310)。
java.time
- ThreeTenABP,ThreeTen Backport 的 Android 版本
- 问:如何在Android Project中使用ThreeTenABP,解释非常详尽。
评论