Kotlin:
Расчет даты в будущем или прошлом
Как это сделать:
Kotlin работает с датами и временем с помощью библиотеки java.time. Чтобы добавить или вычесть дни, используйте plusDays() или minusDays(). Вот краткое руководство:
import java.time.LocalDate
fun main() {
val today = LocalDate.now()
val tenDaysLater = today.plusDays(10)
val tenDaysBefore = today.minusDays(10)
println("Сегодня: $today")
println("Через десять дней: $tenDaysLater")
println("Десять дней назад: $tenDaysBefore")
}Пример вывода:
Сегодня: 2023-03-15
Через десять дней: 2023-03-25
Десять дней назад: 2023-03-05Помимо дней, вы также можете играть с месяцами и годами (plusMonths(), minusMonths(), plusYears(), minusYears()).
Подробнее
Расчёт дат не новинка. С Java 8 пакет java.time стал основным средством для арифметики даты и времени — гораздо лучше, чем старые Calendar или Date, которые были громоздкими и не потокобезопасными.
java.time использует неизменяемые объекты, так что вы избегаете неприятных ошибок из-за случайного изменения ваших дат. Объекты вроде LocalDate, LocalTime, LocalDateTime и ZonedDateTime помогают точно представлять различные аспекты времени.
Альтернативы? Конечно. Перед java.time Joda-Time был предпочтительным инструментом. Некоторые старые системы до сих пор используют его. И в сфере Android библиотека ThreeTenABP адаптирует функции java.time для совместимости с Java 6 & 7.
API java.time также разработано с учётом часовых поясов, благодаря классам вроде ZonedDateTime. Так что, когда вы манипулируете датами, вы можете учитывать хронологию вращения Земли.
Смотрите также
- Официальная документация
java.time: Java SE Date Time - Для разработчиков Android, подробности библиотеки
ThreeTenABP: ThreeTenABP на GitHub - Подробное руководство, если вы хотите узнать больше о датах и времени: Дата и Время в Java