在 Kotlin 中,可以使用 java.time 库来处理日期和时间。这个库是 Java 8 引入的新的日期和时间 API,它提供了很多有用的类和函数来处理日期、时间、时区等。以下是一些常用的 Kotlin 日期和时间处理方法:
- 获取当前日期和时间:
val currentDate = LocalDate.now() val currentTime = LocalTime.now() val currentDateTime = LocalDateTime.now()
- 创建特定日期和时间:
val specificDate = LocalDate(2022, 1, 1) val specificTime = LocalTime(12, 30) val specificDateTime = LocalDateTime(2022, 1, 1, 12, 30)
- 日期和时间的加减:
val dateAfter1Day = currentDate.plusDays(1) val timeAfter2Hours = currentTime.plusHours(2) val dateTimeAfter1DayAnd2Hours = currentDateTime.plusDays(1).plusHours(2)
- 计算日期差:
val daysBetweenDates = LocalDate.now().toEpochDay() - LocalDate(2022, 1, 1).toEpochDay() val hoursBetweenTimes = LocalTime.now().toEpochSecond(ZoneOffset.UTC) - LocalTime(12, 0).toEpochSecond(ZoneOffset.UTC) / 3600
- 格式化日期和时间:
val formattedDate = currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) val formattedTime = currentTime.format(DateTimeFormatter.ofPattern("HH:mm")) val formattedDateTime = currentDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))
- 解析日期和时间字符串:
val parsedDate = LocalDate.parse("2022-01-01", DateTimeFormatter.ofPattern("yyyy-MM-dd")) val parsedTime = LocalTime.parse("12:30", DateTimeFormatter.ofPattern("HH:mm")) val parsedDateTime = LocalDateTime.parse("2022-01-01 12:30", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))
- 处理时区:
val zoneId = ZoneId.systemDefault() val zonedDateTime = currentDateTime.atZone(zoneId) val offsetDateTime = currentDateTime.atOffset(ZoneOffset.UTC).atZoneSameInstant(zoneId)
这些只是 Kotlin 日期和时间处理的一些基本方法,实际上 java.time 库还提供了很多其他功能和类,可以根据需要选择使用。