我使用下面的代码为什么DataFormatString的DisplayFormat将“/”(斜杠)更改为“ - ”(短划线)?
// Model
[DisplayFormat(
ApplyFormatInEditMode = true,
DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime StartDate { get; set; }
// View
@Html.EditorFor(model => model.StartDate)
格式化StartDate
但结果却是xx-xx-xxxx
,而不是xx/xx/xxxx
。我该如何解决这个问题并始终使用xx/xx/xxxx
格式?
UPDATE: 改变文化en-US
似乎工作:
var culture = new CultureInfo(userCulture);
System.Threading.Thread.CurrentThread.CurrentCulture = "en-US";
System.Threading.Thread.CurrentThread.CurrentUICulture = "en-US";
但这是不是一个解决方案,因为我可能会使用不同的文化,我还是想显示的日期一种不同的方式。
如果当前的文化告诉日期应该显示dd-MM-yyyy
然后使用DisplayFormat
如上所述没有影响,并且日期不显示像dd/MM/yyyy
。
你是指“我可能在使用不同的文化,我还想用不同的方式显示日期”是什么意思? – 2011-12-29 21:05:58
假设当前用户使用文化“pt-PT”,那么当我想要显示它时,DisplayFormat会将其更改为“dd-MM-yyyy”(应该是这样):“dd/MM/yyyy” – Dryadwoods 2011-12-29 21:14:03
这有点神秘,如果用户文化认为破折号应该是分隔符,那么您坚持使用斜杠。 – 2011-12-30 14:50:12