bool/if проверка для DateTime.ParseExact, распознование формата национальных дат (Spain, China, India)

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
547
Баллы
93
Приветствую!
Подскажите, как правильно сделать проверку, для DateTime.ParseExact.

Собираю такой формат даты:
C#:
DateTime.ParseExact("October 23, 2019", "MMMM d, yyyy", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
Проблема в том, что бывают исключения, когда указан только год, или дата записана в другом формате. В этом случае ParseExact выдаст ошибку, а если делать предварительную проверку через bool по TryParse, то мы получим ошибку, т.к. он пропустит дату, к примеру "2018/10/23"
C#:
DateTime dt;
string date = "2018/10/12";
bool result = DateTime.TryParse(date, out dt);
if (result) return DateTime.ParseExact(date, "MMMM d, yyyy", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");

Так же, пожалуйста, подскажите, как правильно распознавать такие даты:

"2015年5月8日" China
"2 de agosto de 2018" Spain
"19 agosto 2019" Italy
"9 फ़रवरी 2017" India

Чтобы на выходе получить .ToString("yyyy-MM-dd")
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
547
Баллы
93
Вот решение отладки TryParseExact:

C#:
DateTime result;

// US
string dt = "October 23, 2019";
if (DateTime.TryParseExact(dt, "MMMM d, yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out result)) {
    return result.ToString("yyyy-MM-dd");
} else project.SendInfoToLog("False", true);
А так, можно собрать для ES
C#:
DateTime result;
string dt = "2 de agosto de 2018";
if (DateTime.TryParseExact(dt, "d 'de' MMMM 'de' yyyy", System.Globalization.CultureInfo.CreateSpecificCulture("es-ES"), System.Globalization.DateTimeStyles.None, out result)) {
    return result.ToString("yyyy-MM-dd");
} else project.SendInfoToLog("False", true);
Только для Hindi - "9 फ़रवरी 2017" не получилось найти, CreateSpecificCulture("hi-IN") - не помогает.
Подскажите, как распарсить эти даты.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)