DateTime.TryParseExact错误地将我的日期中的月份解析为1月

时间:2012-03-22 09:20:22

标签: c# datetime

下面显示“07/01/2011”而不是“07/09/2011”的代码段。这段代码片段有什么问题吗?

代码段:

DateTime result;
DateTime.TryParseExact(
   "07/09/2011", 
   "dd-mm-yyyy", 
   new CultureInfo("en-GB"),
   System.Globalization.DateTimeStyles.None, 
   out result);

// shows "07/01/2011"
MessageBox.Show(result.ToString());

3 个答案:

答案 0 :(得分:14)

mm是“分钟”。 MM是月。此外,它不应该匹配任何内容,因为在您使用/分隔组件的日期和您使用破折号的模式中。

因此,您的日期模式应为dd/MM/yyyy,或者您的日期字符串应为07-09-2011

答案 1 :(得分:4)

正确的格式字符串为dd/MM/yyyy

答案 2 :(得分:1)

dd-mm-yyyy应为dd/MM/yyyy,因为mm代表分钟,而-在TryParseExact中不等于/

检查:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx