我正在尝试使用以下代码解析日期
DateTime mydate = DateTime.ParseExact(datetoconvert,"dd/mm/yyyy",System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat);
但输出错误,上面代码中的datetoconvert为30/Mar/2017
,但输出为29/Jan/2017
期待您的宝贵答案......
答案 0 :(得分:13)
小写mm
表示分钟,请使用MM
DateTime mydate = DateTime.ParseExact(datetoconvert,"dd/MM/yyyy",System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat);
如果您想将其输出为30/Mar/2017
(不同主题):
string result = mydate.ToString("dd/MMM/yyyy", CultureInfo.InvariantCulture);
但请注意/
has a special meaning(Parse
和ToString
)。它将被替换为您当前的文化日期分隔符,它似乎是/
但却失败了。你可以通过指定CultureInfo.InvariantCulture
或通过用撇号包装它来掩盖它来避免它:
DateTime mydate = DateTime.ParseExact(datetoconvert,"dd'/'MM'/'yyyy",System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat);
答案 1 :(得分:7)
替换
"dd/mm/yyyy"
与
"dd/MMM/yyyy"
因为"Jan"
与MMM
而不是mm
匹配(分钟数)
参考
“MMM”月份的缩写名称。
https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
答案 2 :(得分:1)
日期格式错误。尝试“dd / MM / yyyy”而不是“dd / mm / yyyy”
如果您需要明确的月份名称,请使用“dd / MMM / yyyy”