我有一个下面的代码,我试图检查DateTime
HttpCookie date1 = Request.Cookies.Get("Date1");
DateTime? aDate = date1 != null DateTime.ParseExact(date1.Value, "dd/MM/yyyy", null): (DateTime?) null;我也尝试过Convert.ToDateTime(date1),但它们都不起作用。我得到了以下异常String was not recognized as a valid DateTime error
发布于 2015-03-31 20:04:44
根据你的评论:
调试时,我看到的值为03%2F31%2F2014
然后试着:
DateTime.ParseExact(WebUtility.UrlDecode(date1.Value), "MM/dd/yyyy", null)注意,null意味着使用当前区域性进行解析。如果值总是以该格式表示,那么您可能希望使用CultureInfo.InvariantCulture。
或者,如果您确实是在根据当前的文化改变值,那么您应该尝试这样做:
DateTime.Parse(WebUtility.UrlDecode(date1.Value))我不知道为什么您的值是URL编码的。也许您还应该研究一下如何设置cookie。您可能应该使用ISO8601格式(yyyy-MM-dd)设置不变区域性。
发布于 2015-03-31 20:07:35
你必须Decode你的价值观。然后,您将看到它是03/31/2014,它不同于您以您的格式提供的内容。使用:
DateTime.ParseExact(System.Net.WebUtility.UrlDecode(date1.Value),
"MM/dd/yyyy",
CultureInfo.InvariantCulture);请确保传递CultureInfo.InvariantCulture而不是null,这可能会在默认culthre具有与/不同的数据分隔符的计算机上造成问题。
WebUtility.UrlDecode Method只提供了.Net框架4.5。如果您的目标是HttpUtility.UrlDecode框架4.0或更低版本,请使用.Net。
https://stackoverflow.com/questions/29377319
复制相似问题