2015-02-25 1 views
-1

Я попытался проанализировать строку, которая представляет дату на испанском (Чили), когда отсутствуют значимые данные - год. Я надеялся, что класс DateTime будет знать, как найти самую последнюю дату, которая соответствует. Какие-либо предложения?Разбор строки в DateTime с помощью TryParseExact с другой культурой и форматом языка

public void TestDateParsing() 
    { 
     string strDate = "MIE 25"; 
     CultureInfo cl = new CultureInfo("es-CL"); 
     DateTime date= new DateTime(); 
     if (DateTime.TryParseExact(strDate,"ddd d",cl,DateTimeStyles.None, out date)) 
     { 
      //print the variable date... 
     } 
    } 
+0

Что делает 'it does'nt works for me' mean? См. [Ask] – Plutonix

+0

Как уже упоминал Soner, это похоже на среду. Так что 12 месяцев в году, которые могут быть 25-м. Там, вероятно, среда, но подождите, мы даже не знаем год. –

+0

@TimSchmelter Точно. _Even_, если мы знаем годовую часть, скажем, '2015', как февраль, так и ноябрь имеет 25 дней в день в среду :) Методы анализа не могут решить, что слава богу. –

ответ

1

Я думаю, что это потому, что ваш strDate не имеет достаточной информации для разбора DateTime экземпляра.

mié (даже это не то же самое, как MIE) кажется сокращенным день названия среды в es-CL культуры, поэтому, какой результат должен быть как DateTime из 25 Wed строки?

Мы не знать, что, как и методы синтаксического анализа ..

Ваша строка нуждается в более конкретную информацию о вашей даты или части времени для разбора его успешно. Без этой информации я не думаю, что это возможно.

+0

Прошу прощения, это мой первый вопрос в Stackoverflow, я работаю с настоящими датами с сайтов, поэтому идея заключалась в анализе этой даты с текущим месяцем и годом или в следующем месяце. – shlomta1

0

Прошло некоторое время, и я забыл об этом вопросе. Перейдя по вашим ответам (2 года назад Ха-ха), я обнаружил, что существует способ проанализировать дату в соответствии с календарем текущего года. Согласно 2017 году «Martes 21 de marzo» (вторник, 21 марта) является достоверными данными, и приведенный ниже код будет работать, но если вы измените его на «Martes 24 de marzo», например, исключение (исключение формата, Строка не была признана действительной DateTime, потому что день недели был неправильным. «Чтобы быть более точным», будет поднято, потому что эта дата не существует в текущем году. Я должен упомянуть, что я использовал этот код для анализа дат в scrappers, которые я использовал для сборки, и предположил, что даты, которые я получаю, являются действительными датами. Надеюсь, что эта часть кода каким-то образом поможет кому-то.

string strDate ="Martes 21 de marzo"; 
CultureInfo cl = new CultureInfo("es-CO"); 
DateTime date = DateTime.Parse(strDate, cl, DateTimeStyles.None); 
+0

Это не одна строка, указанная в вашем вопросе. Он также содержит информацию о деньгах. В таком случае он может анализироваться с текущим годом, если такая дата существует. Но опять же, это совершенно разные строки. –

Смежные вопросы