【发布时间】:2020-07-28 03:27:51
【问题描述】:
我正在尝试为一天的开始或 00:00:00 创建一个日历对象
这是我的代码。
val calendarStart = Calendar.getInstance(TimeZone.getTimeZone("EST"), Locale.US)
calendarStart.time = Date()
calendarStart[Calendar.HOUR] = 0
calendarStart[Calendar.HOUR_OF_DAY] = 0
calendarStart[Calendar.MINUTE] = 0
calendarStart[Calendar.SECOND] = 0
calendarStart[Calendar.MILLISECOND] = 0
val utcStartDate = calendarStart.time
val calendarEnd = Calendar.getInstance(TimeZone.getTimeZone("EST"), Locale.US)
calendarEnd[Calendar.HOUR_OF_DAY] = 23
calendarEnd[Calendar.MINUTE] = 59
calendarEnd[Calendar.SECOND] = 59
calendarEnd[Calendar.MILLISECOND] = 999
val utcEndDate = calendarEnd.time
结束日期似乎没问题,但开始日期显示为 01:00:00,如调试器日志的屏幕截图所示。
谁能向我解释为什么它显示为 1:00:00 以及如何创建一天日历的开始?
*** 更新 ***
#snachmsm 给出的答案是正确的,并且确实解决了问题。但是,我选择使用此代码:
val dayStart: LocalDateTime = now.with(LocalTime.MIN)
val zdtStart: ZonedDateTime = dayStart.atZone(ZoneId.systemDefault())
val startDate = Date.from(zdtStart.toInstant())
val dayEnd: LocalDateTime = now.with(LocalTime.MAX)
val zdtEnd: ZonedDateTime = dayEnd.atZone(ZoneId.systemDefault())
val endDate = Date.from(zdtEnd.toInstant())
【问题讨论】:
-
你想用什么值来开始日历?