C#和jQuery中的日期时间格式不一致

时间:2012-12-17 16:25:21

标签: c# asp.net-mvc datetime

我有一个问题,我有一个基于用户的日期时间格式设置。 现在,我在Global.asax中设置输入格式,如下所示

   void MvcApplication_PreRequestHandlerExecute(object sender, EventArgs e)
    {

                if (userSettings.Settings.ContainsKey(Constants.DateFormat))
                {
                    CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
                    cultureInfo.DateTimeFormat.DateSeparator = "/";
                    cultureInfo.DateTimeFormat.FullDateTimePattern = userSettings.Setting.Attributes[Constants.DateFormat];
                    cultureInfo.DateTimeFormat.LongDatePattern = userSettings.Setting.Attributes[Constants.DateFormat];
                    cultureInfo.DateTimeFormat.ShortDatePattern = userSettings.Setting.Attributes[Constants.DateFormat];
                }
     }

但是当我将UI文本框中的日期值绑定到属性时,我只获得空值。我在这个过程中缺少什么。

用户提供的日期格式为'dd / mm / yy'。完成MVC模型绑定后,'01 / 11/12'的输入将被绑定为2012年1月11日。

请提出问题以及修复工作将在何处解决。

修改

是否有可能只在月份格式字符串中使用月份作为mm / dd / yy。是不是可以将dd / mm / yy作为格式字符串。

2 个答案:

答案 0 :(得分:0)

这样的事情?

cultureInfo.DateTimeFormat.LongDatePattern = CultureInfo.CreateSpecificCulture("id-ID");

这个例子是从印度尼西亚采取文化,我们使用dd / MM / yyyy格式。

答案 1 :(得分:0)

也许您应该研究一种可以进行本地化的正式日期格式。我们选择使用ISO 8601(现在是WebAPI的默认设置)。然后,您可以确信客户端将从序列化格式中读取正确的日期。但是,您需要本地化时间(如果需要)。

Scott Hanselman有很好的write up个问题。

this datetime javascript库看起来很有趣。