C# ASP.NET MVC和SQL SERVER中的日期时间全球化

C# ASP.NET MVC和SQL SERVER中的日期时间全球化,c#,.net,sql-server,asp.net-mvc,C#,.net,Sql Server,Asp.net Mvc,在我的ASP.NET MVC应用程序中,ModelState始终无效,并显示以下错误消息:“值'5/23/2015 7:29:37 AM'对于注册日期无效。” 我正在尝试本地化我的波斯文化应用程序,因此我在web.config中将uiCulture和culture设置为fair。但是,DateTime.Now不会返回本地化日期 全球化日期时间的正确方法是什么?我应该在DB中存储本地化日期吗?或者本地化版本仅用于查看 似乎我应该在DB中存储本地化版本,我如何才能在波斯文化中获得它 更新: 似乎我无

在我的ASP.NET MVC应用程序中,ModelState始终无效,并显示以下错误消息:
“值'5/23/2015 7:29:37 AM'对于注册日期无效。”

我正在尝试本地化我的波斯文化应用程序,因此我在
web.config
中将
uiCulture
culture
设置为
fair
。但是,
DateTime.Now
不会返回本地化日期

全球化日期时间的正确方法是什么?我应该在DB中存储本地化日期吗?或者本地化版本仅用于查看

似乎我应该在DB中存储本地化版本,我如何才能在波斯文化中获得它

更新:

似乎我无法直接获得当前的波斯日期,我必须按照以下说明进行转换:

不能将PersianCalendar对象用作区域性的默认日历。默认日历由CultureInfo.calendar属性指定,并且必须是CultureInfo.OptionalCalendars属性返回的日历之一。目前,PersianCalendar类不是CultureInfo类支持的任何区域性的可选日历,因此不能作为默认日历


Bu我如何知道哪个组件正在添加错误消息以及如何修复它?

我建议您将日期定位在客户端,而不是服务器或数据库端。这样,你就不必拘泥于特定的文化。例如,您的日期可以这样表示:“2015-05-23T7:29:37Z”


我还建议您以UTC格式保存并发送日期时间。

以DB格式存储UTC是最好的方法。。然后,您可以在应用程序代码中执行转换逻辑。那么,为什么我的模型状态总是因为DateTime而无效?您是否使用jquery datepicker插件来选择日期,如果是,您是否使用了
jquery.globalize.js
?目前,我正在使用控制器中的
DateTime.Now
插入当前时间。因此,用户不输入日期。但我的应用程序使用剑道。这将是下一个痛苦的步骤,使用全球化的日期选择器。如果用户没有在模型上输入日期,为什么不将模型更改为使用可为空的日期时间
DateTime?
。你试过了吗?错误仍然存在吗?谢谢,但是为什么我的ModelState总是因为日期时间而无效?我想我应该把它存储在DB上。我如何知道哪个组件正在添加特定的错误消息?