我有一个问题,我有一个基于用户的日期时间格式设置。 现在,我在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作为格式字符串。
答案 0 :(得分:0)
这样的事情?
cultureInfo.DateTimeFormat.LongDatePattern = CultureInfo.CreateSpecificCulture("id-ID");
这个例子是从印度尼西亚采取文化,我们使用dd / MM / yyyy格式。
答案 1 :(得分:0)
也许您应该研究一种可以进行本地化的正式日期格式。我们选择使用ISO 8601(现在是WebAPI的默认设置)。然后,您可以确信客户端将从序列化格式中读取正确的日期。但是,您需要本地化时间(如果需要)。
Scott Hanselman有很好的write up个问题。
this datetime javascript库看起来很有趣。