Метод tryParse
Метод tryParse класса DateTime пытается
преобразовать строку в объект даты и времени.
В первый параметр мы передаем строку с датой,
во второй необязательный параметр - формат
даты (если он не указан, используется формат
ISO 8601). Если строка корректна, метод
возвращает объект DateTime, а если
строка имеет неверный формат - возвращает
null. В отличие от метода parse,
который выбрасывает исключение при ошибке,
tryParse не прерывает выполнение программы.
Синтаксис
DateTime.tryParse(str, [format])
Пример
Давайте распарсим корректную строку с датой в формате ISO 8601:
void main()
{
DateTime? res = DateTime.tryParse('2023-01-15');
print(res);
}
Результат выполнения кода:
2023-01-15 00:00:00.000
Пример
Давайте передадим методу строку с неверным
форматом и получим null вместо
исключения:
void main()
{
DateTime? res = DateTime.tryParse('abcde');
print(res);
}
Результат выполнения кода:
null
Пример
Давайте распарсим строку с датой и временем в формате ISO 8601:
void main()
{
DateTime? res = DateTime.tryParse('2023-01-15 10:30:45');
print(res);
}
Результат выполнения кода:
2023-01-15 10:30:45.000
Пример
Давайте используем второй параметр и передадим собственный формат даты:
void main()
{
DateTime? res = DateTime.tryParse('15.01.2023', 'dd.MM.yyyy');
print(res);
}
Результат выполнения кода:
2023-01-15 00:00:00.000
Пример
Давайте проверим результат на null
перед использованием:
void main()
{
DateTime? res = DateTime.tryParse('12345');
if (res != null) {
print(res.year);
} else {
print('Invalid date');
}
}
Результат выполнения кода:
"Invalid date"
Смотрите также
-
метод
parse,
который парсит строку и выбрасывает исключение при ошибке -
класс
DateTime,
который представляет дату и время -
метод
now,
который возвращает текущую дату и время -
метод
toIso8601String,
который преобразует дату в строку формата ISO 8601