首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何转换HttpCookie DateTime?

如何转换HttpCookie DateTime?
EN

Stack Overflow用户
提问于 2015-03-31 19:51:17
回答 2查看 360关注 0票数 0

我有一个下面的代码,我试图检查DateTime

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-31 20:04:44

根据你的评论:

调试时,我看到的值为03%2F31%2F2014

然后试着:

代码语言:javascript
复制
DateTime.ParseExact(WebUtility.UrlDecode(date1.Value), "MM/dd/yyyy", null)

注意,null意味着使用当前区域性进行解析。如果值总是以该格式表示,那么您可能希望使用CultureInfo.InvariantCulture

或者,如果您确实是在根据当前的文化改变值,那么您应该尝试这样做:

代码语言:javascript
复制
DateTime.Parse(WebUtility.UrlDecode(date1.Value))

我不知道为什么您的值是URL编码的。也许您还应该研究一下如何设置cookie。您可能应该使用ISO8601格式(yyyy-MM-dd)设置不变区域性。

票数 2
EN

Stack Overflow用户

发布于 2015-03-31 20:07:35

你必须Decode你的价值观。然后,您将看到它是03/31/2014,它不同于您以您的格式提供的内容。使用:

代码语言:javascript
复制
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。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29377319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档