3.5中奇怪的DateTime.Parse异常?

0 datetime .net-3.5 formatexception

这行代码适用于我的计算机(64位Win7).我在VM中测试了XP 32位.它工作正常.

static bool HasExpire { get { return DateTime.Now >= DateTime.Parse("10/20/2010"); } }
Run Code Online (Sandbox Code Playgroud)

但是在客户端计算机上它会抛出此异常:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

[FormatException: String was not recognized as a valid DateTime.]
   System.DateTimeParse.Parse(String s,
       DateTimeFormatInfo dtfi,
       DateTimeStyles styles) +2838082
Run Code Online (Sandbox Code Playgroud)

为什么它不能解析客户端计算机上的日期?日期是硬编码的.我不明白这是怎么回事.我确认客户端有3.5,如果我改变该行总是返回false,那么应用程序运行完全正常,除非它无法判断试用期何时到期.

And*_*Dog 5

DateTime.Parse可能会意外地抛出FormatException,因为它依赖于语言环境.从MSDN页面:

格式化受当前DateTimeFormatInfo对象的属性影响,默认情况下,该对象派生自"控制面板"中的"区域和语言选项"项.

您可能更愿意使用DateTime.ParseExact.