首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改区域性无法进行DateTime转换

更改区域性无法进行DateTime转换
EN

Stack Overflow用户
提问于 2012-11-01 21:15:13
回答 2查看 492关注 0票数 0

令人沮丧的DateTime问题是,我们有一个带有日期选择器的部分,如果区域性设置为en-GB,日期为2012年1月11日(dd/mm/yyyy),然后区域性被交换为中文(zh-CN),则日期以旧区域性格式传递,当它转换为DateTime时,日期时间变为2012/1/11,而区域性应为(yyyy/mm/dd)。

这似乎是我遇到的唯一一种转换错误的文化,因为它应该是2012/ 11 /1,因为11是月份。

我们有一个报表表单,允许用户选择日期范围,在该表单上,我们使用日期范围选择器(http://www.filamentgroup.com/lab/update_date_range_picker_with_jquery_ui/)填充一个只读文本框,然后提交该文本框来过滤结果。用户可以从下拉菜单中选择他们当前的文化(我们的用户需要),因为他们希望在不更改浏览器设置的情况下轻松地在英文和中文之间切换,如果文化是en-GB,则日期范围字符串可能为“01/01/ 2012 -01/11/ 2012”,即2012年1月1日-2012年11月1日。这存储在url中,例如:&DateRange=01%2F01%2F2012+-+01%2F11%2F2012。

现在,如果用户切换到中文,它使用所有相同的查询参数调用当前页面,但区域性参数也发生了更改(我们允许由URL参数覆盖区域性),这意味着日期格式01/11/2012在查询字符串中,当我们使用以下命令传递时:

代码语言:javascript
复制
DateTime.TryParse(endDateString, out endDate);

有没有一种方法可以存储日期字符串所在的区域性信息,并在区域性被交换时将其转换为新的区域性信息?

任何更好的想法都将非常感谢,从en-GB到en-IN (印度)的交换似乎工作得很好,交换到es-MX (墨西哥)也是如此。

非常感谢您抽出时间来阅读这篇文章。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-01 23:14:38

代码语言:javascript
复制
DateTime.TryParse(endDateString, out endDate);

正在使用服务器上默认的任何区域性。

基本解决方案是:

代码语言:javascript
复制
var ci = GetCultureInfoFromRequest();
DateTime.TryParse(endDateString, out endDate, ci);
票数 0
EN

Stack Overflow用户

发布于 2012-11-01 21:19:15

在这种情况下,可以使用字符串来移动datetime,如果您不处理datetime而只是存储it.After,则可以在将其存储到数据库之前更改格式。

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

https://stackoverflow.com/questions/13177897

复制
相关文章

相似问题

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