C# 使用其他语言区域性和格式使用TryParseExact将字符串解析为DateTime

C# 使用其他语言区域性和格式使用TryParseExact将字符串解析为DateTime,c#,parsing,datetime,tryparse,C#,Parsing,Datetime,Tryparse,我试图解析一个字符串,该字符串表示缺少有意义数据的西班牙语日期(智利)——年份。我希望DateTime类知道如何找到匹配的最新日期。有什么建议吗 public void TestDateParsing() { string strDate = "MIE 25"; CultureInfo cl = new CultureInfo("es-CL"); DateTime date= new DateTime(); if (Da

我试图解析一个字符串,该字符串表示缺少有意义数据的西班牙语日期(智利)——年份。我希望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...
        }
    }

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

mié
(即使它与
MIE
不同)似乎是
es CL
文化中星期三的缩写,那么,作为
25 Wed
字符串的
DateTime
应该是什么结果呢

我们不能知道这一点,就像解析方法一样


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

已经有一段时间了,我忘记了那个问题。在阅读了你的答案(2年前哈哈)后,我发现有一种方法可以根据当前日历解析日期。 根据2017年的规定,“Martes 21 de marzo”(3月21日,星期二)是一个有效的数据,下面的代码可以使用,但是如果您将其更改为“Martes 24 de marzo”,例如,异常(格式异常,表示“字符串未被识别为有效的日期时间,因为星期几不正确。”更准确地说)将引发,因为该日期在当前年度不存在。 我必须提到,我使用该代码来解析我用来构建的报废程序中的日期,并且我假设我收到的日期是有效日期。 我希望这段代码能对某些人有所帮助

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

它对我不起作用是什么意思?正如索纳已经提到的,今天似乎是星期三。一年有12个月,可能是25个月。“可能是星期三,但是等等,我们甚至不知道是哪一年。”蒂姆施梅尔特说。即使我们知道年份,比如说2015年,2月和11月的第25天都是星期三:)解析方法无法决定这一点,感谢上帝。@SonerGönül:嗯,那么我知道了谜题的解决方案:OP想要第一个
日期时间,也就是25日星期三,并且年份不包含多个日期。为什么
DateTime.Parse默认情况下不支持它?;)@TimSchmelter祝你好运。开始新的一年
0001
:p当它将是开源的时候,我们可以通过拉取请求来改进它:)对不起,这是我在Stackoverflow中的第一个问题,我正在处理来自网站的真实日期,所以我们的想法是用当前月份和年份或下个月来解析该日期。这与您在问题中提到的字符串不同。它还包括日信息。在这种情况下,如果存在这样的日期,则可以将其与当前年份解析。但同样,这些是完全不同的字符串。