Метод checkValidValue
Метод checkValidValue класса ChronoField проверяет, что переданное значение long находится в допустимом диапазоне для данного поля даты-времени.
В первый параметр мы передаем значение для проверки. Метод возвращает это же значение, если оно валидно, или выбрасывает исключение DateTimeException, если значение выходит за пределы допустимого диапазона.
Импорт
import java.time.temporal.ChronoField
Синтаксис
fun checkValidValue(value: Long): Long
Пример
Проверим валидность значения для поля DAY_OF_MONTH:
val dayValue = 15L
val validDay = ChronoField.DAY_OF_MONTH.checkValidValue(dayValue)
println("Valid day: $validDay")
Результат выполнения кода:
String "Valid day: 15"
Пример
Попробуем проверить невалидное значение для поля HOUR_OF_DAY:
try {
val hourValue = 25L
val validHour = ChronoField.HOUR_OF_DAY.checkValidValue(hourValue)
println("Valid hour: $validHour")
} catch (e: Exception) {
println("Error: ${e.message}")
}
Результат выполнения кода:
String "Error: Invalid value for HourOfDay (valid values 0 - 23): 25"
Пример
Проверим несколько значений для разных полей:
val valuesToCheck = mapOf(
ChronoField.MONTH_OF_YEAR to 12L,
ChronoField.MINUTE_OF_HOUR to 59L,
ChronoField.SECOND_OF_MINUTE to 60L
)
valuesToCheck.forEach { (field, value) ->
try {
val result = field.checkValidValue(value)
println("$field: $value -> valid ($result)")
} catch (e: Exception) {
println("$field: $value -> invalid (${e.message})")
}
}
Результат выполнения кода:
String "MONTH_OF_YEAR: 12 -> valid (12)"
String "MINUTE_OF_HOUR: 59 -> valid (59)"
String "SECOND_OF_MINUTE: 60 -> invalid (Invalid value for SecondOfMinute (valid values 0 - 59): 60)"
Смотрите также
-
метод
checkValidIntValueклассаChronoField,
который проверяет значения типа int -
метод
rangeклассаChronoField,
который возвращает допустимый диапазон значений -
метод
checkValidValueклассаValueRange,
который проверяет значения для диапазона -
класс
ChronoField,
который содержит поля даты-времени