我在使用jQuery UI DatePicker对象的MVC3应用程序时遇到问题。
在MVC应用程序中,我要求用户选择他们所需的文化,即en-GB,然后以英国格式格式化应用程序中的所有日期和货币。
然后我可以通过Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern
但是,英国日期返回的格式为:dd/MM/yyyy
要从jQuery UI datepicker格式化结果数据,我需要指定日期格式。但对于英国格式的日期,我需要将格式指定为dd/mm/yy
简单的解决方案是在我的jQuery调用中使用Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern
来格式化日期,但显然这会产生格式不一致,因为jQuery UI对此进行了不同的解释(01/December/20112011
而不是{{ 1}})
这有什么简单的方法吗?
我能想到的唯一方法是询问用户两次显示日期的格式?
答案 0 :(得分:0)
我可以想到另一个解决方案,但那是非常低技术的,我不确定这是否是正确的方法:
var dateTime = Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern;
var lowerCaseMonths = Regex.Replace(dateTime, "MM","mm");
var yearOnlyOnce = Regex.Replace(lowerCaseMonths, "yyyy", "yy");
没有“解释变量”只是
Regex.Replace(Regex.Replace(Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern, "MM","mm"), "yyyy", "yy")
然后我猜不管它是什么格式,dd/MM/yyyy
MM/DD/yyyy
dd-MM-yyyy
等,它应该在jQuery中运行。
也许有人有更好的解决方案,但至少这似乎比要求用户输入两次更好。
答案 1 :(得分:0)
@System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToLower().Replace("yyyy", "yy")