使用TryParseExact将字符串解析为DateTime,具有其他语言文化和格式

时间:2015-02-25 13:55:53

标签: c# parsing datetime tryparse

当有意义的数据丢失时,我试图解析一个代表西班牙语(智利)日期的字符串 - 年份。我希望DateTime类知道如何找到匹配的最新日期。有什么建议?

  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...
        }
    }

2 个答案:

答案 0 :(得分:1)

我认为那是因为您的strDate没有足够的信息来解析DateTime个实例。

mié(即使它与MIE不同)似乎是es-CL文化中星期三的缩写日名,因此,结果应该是DateTime的{​​{1}} 25 Wed字符串?

我们不能知道这一点,与解析方法相同..

您的字符串需要有关您的日期或时间部分的更多具体信息才能成功解析它。没有这些信息,我认为这是不可能的。

答案 1 :(得分:0)

已经有一段时间了,我忘记了那个问题。在回答了你的答案(2年前哈哈)之后,我发现有一种方法可以根据当前年份日历来解析日期。 根据2017年“Martes 21 de marzo”(3月21日星期二)是有效的数据,下面的代码可以使用,但是如果你将其改为“Martes 24 de marzo”,例如,异常(格式异常,表示“String”)由于星期几不正确,因此未被识别为有效的日期时间。“更准确”将被提出,因为当前年份不存在该日期。 我必须提一下,我使用该代码来解析我曾经构建的scrappers中的日期,并且我假设我收到的日期是有效日期。 我希望这段代码能以某种方式帮助某人。

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