[英]Format exception String was not recognized as a valid DateTime
objTour.tourStartDate =
Convert.ToDateTime(
DateTime.ParseExact(txtTourStartDate.Text, "dd/MM/yyyy", null)
.ToString("MM/dd/yyyy"));
其中txtTourStartDate.Text="16/08/2012"
。
我已经搜索并阅读了与此相关的所有帖子。
在自定义日期格式字符串中 , /
表示区域性特定的日期分隔符,而不是文字字符/
。 因此,代码的结果取决于用户(或服务器)的本地化设置。
为了使代码独立于特定于区域性的设置,您有两个选择:
明确指定使用斜杠作为日期分隔符的区域性,例如
DateTime.ParseExact(txtTourStartDate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture)
或逃脱角色,例如
DateTime.ParseExact(txtTourStartDate.Text, @"dd\\/MM\\/yyyy", null)
(请注意@
和 \\
)。
两者都应产生期望的结果。
这样就足够了:
objTour.tourStartDate = DateTime.ParseExact(txtTourStartDate.Text,
"dd/MM/yyyy",
CultureInfo.InvariantCulture);
尽管执行了许多不必要的转换,但是原始代码仍然有效。 (DateTime-> ToString-> ToDateTime) , 真正的问题是InvariantCulture
。 由于您为CultureInfo
传递了null
,因此请尝试CultureInfo.InvariantCulture
。
您的原始代码:
objTour.tourStartDate =
Convert.ToDateTime(
DateTime.ParseExact(txtTourStartDate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture)
.ToString("MM/dd/yyyy"));
更好的是:
objTour.tourStartDate =
DateTime.ParseExact(txtTourStartDate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.