我住在南非文化en-ZA,我们的日期格式以格式dd/mm/yyyy
输入
我有一个接受模型的视图:
public class UserInfoModel
{
public DateTime DateOfBirth{get;set;}
// some other properties here
}
当用户输入日期即:04/15/1981
我在post方法中获得的日期时间是1981年4月15日,但是,当插入以下日期15/04/1981
时,返回的模型中的DateOfBirth属性为null
有没有办法可以改变全局解析日期的方式(在整个应用程序中)
我在web.config中添加了以下内容:
<system.web>
<globalization culture="en-ZA" uiCulture="en-ZA"/>
</system.web>
但它似乎没有什么区别。
答案 0 :(得分:6)
尝试将此添加到您的GlobalAsax.cs(位于App_code目录中)
protected void Application_BeginRequest(object sender, EventArgs e)
{
CultureInfo cInfo = new CultureInfo("en-ZA");
cInfo.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy";
cInfo.DateTimeFormat.DateSeparator = "/";
Thread.CurrentThread.CurrentCulture = cInfo;
Thread.CurrentThread.CurrentUICulture = cInfo;
}
答案 1 :(得分:1)
您可以使用扩展方法 e.g。
public static class StringExt
{
public static DateTime ParseToDateTimeMyWay(this string iString)
{
DateTime dt;
DateTime.TryParseExact(iString, "dd/MM/yyyy", System.Threading.Thread.CurrentThread.CurrentCulture, System.Globalization.DateTimeStyles.None, out dt);
return dt;
}
}
"04/15/1981".ParseToDateTimeMyWay();