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