提问人:BRDroid 提问时间:8/16/2023 最后编辑:Peter MortensenBRDroid 更新时间:8/25/2023 访问量:50
如何从小时和分钟中获取秒数
How to get seconds from hours and minutes
问:
我正在使用时间选择器撰写,我想从中获得几秒钟,但我得到的是小时和分钟(23:50)。
我想将其转换为等于 1692139800000Tuesday, 15 August 2023 23:50:00
现在时间 18:06 离开 17小时 59 分钟 12:05 - 1692183900000 - 2023年 八月 16日 星期三 12:05:00
到目前为止我所拥有的:
fun getMillisFromHrsMins(clock: Clock, timeZoneId: ZoneId) {
val hours = 12
val minutes = 5
val targetDaySeconds = hours * 3600 + minutes * 60 // Seconds from midnight 43500
val date = LocalDateTime.now(clock)
val nowDaySeconds = date.toLocalTime().toSecondOfDay() // Seconds at this time 65432
if (targetDaySeconds >= nowDaySeconds) {
} else {
val newPastSeconds = nowToMidnightSeconds(timeZoneId) + targetDaySeconds // 43500
// Is it possible to get 1692183900000 value with above information please
}
}
答:
2赞
Rai Hassan
8/16/2023
#1
您更新的代码:
import java.time.Clock
import java.time.LocalDateTime
import java.time.ZoneId
import java.time.temporal.ChronoUnit
fun getMillisFromHrsMins(clock: Clock, timeZoneId: ZoneId) {
val hours = 12
val minutes = 5
val targetTime = LocalDateTime.now(clock).withHour(hours).withMinute(minutes)
val now = LocalDateTime.now(clock)
val targetDateTime = if (targetTime.isBefore(now)) {
targetTime.plusDays(1) // If the target time is in the past, add one day
} else {
targetTime
}
val milliseconds = targetDateTime.atZone(timeZoneId).toInstant().toEpochMilli()
println(milliseconds)
}
fun main() {
val clock = Clock.systemDefaultZone()
val timeZoneId = ZoneId.systemDefault()
getMillisFromHrsMins(clock, timeZoneId)
}
我以提供的目标时间为例。您可以将 val hours = 12 和 val minutes = 5 替换为实际目标小时数和分钟数 根据您的需要。
评论