ASP.NET Label中日期dd与MM位置错乱问题求助
解决Access日期显示与年龄计算的格式问题
- 可以直接在绑定表达式里指定
System.Globalization.CultureInfo,通过显式传入目标文化信息强制格式化,避免日/月颠倒:<asp:label id="LabelDateOfBirth" runat="server" text='<%# Eval("DateOfBirth").ToString("dd MMM yyyy", new System.Globalization.CultureInfo("fr-CA")) %>' /> - 核心原因:默认
Eval的格式化逻辑可能未正确继承页面设置的culture,显式指定fr-CA文化信息后,会严格按照加拿大法语区的日期规则解析和输出。 - 如果数据库中
DateOfBirth是文本类型而非日期类型,需先转换为DateTime再格式化,避免解析错误:
这段代码先按<asp:label id="LabelDateOfBirth" runat="server" text='<%# DateTime.ParseExact(Eval("DateOfBirth").ToString(), "dd-MM-yy", new System.Globalization.CultureInfo("fr-CA")).ToString("dd MMM yyyy", new System.Globalization.CultureInfo("fr-CA")) %>' />dd-MM-yy格式将文本转为DateTime对象,再用目标格式输出,彻底解决日月颠倒导致的年龄计算错误。
内容的提问来源于stack exchange,提问作者wazodnuit
相关产品推荐
相关产品推荐

