0

我有一个问题,我有一个基于用户的日期时间格式设置。现在,我在 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 作为格式字符串。

4

2 回答 2

0

像这样的东西?

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

示例取自印度尼西亚的文化,我们使用 dd/MM/yyyy 格式。

于 2012-12-17T16:37:41.407 回答
0

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

Scott Hanselman 对这些问题有很好描述。

这个 datetime javascript库看起来很有趣。

于 2012-12-17T17:17:32.610 回答