当前区域非英文时,如何在Blazor中显示公历英文日期?
在Blazor中同时显示本地语言日期与英文公历日期
方法一:直接指定文化格式化日期
不用修改全局区域设置,直接在格式化日期时分别指定本地文化和英文文化即可。
首先在组件顶部导入必要的命名空间:
@using System.Globalization
然后在组件代码里生成两种日期字符串:
@{ var targetDate = DateTime.Now; // 本地语言日期:使用应用当前的区域设置 var localFormattedDate = targetDate.ToString("D", CultureInfo.CurrentCulture); // 英文公历日期:强制使用en-US文化(英式英文可换成en-GB) var englishFormattedDate = targetDate.ToString("D", new CultureInfo("en-US")); } <p>本地日期:@localFormattedDate</p> <p>英文日期:@englishFormattedDate</p>
这里的"D"是长日期格式,你可以换成其他格式符,比如短日期"d"、带时间的完整格式"F",按需调整即可。
方法二:封装复用组件
如果多个页面都需要展示双语言日期,建议封装成独立组件,方便统一维护:
创建DualDate.razor组件:
@using System.Globalization @param DateTime Date @param string DateFormat = "D" @param string EnglishCultureCode = "en-US" <div class="dual-date"> <span class="local">@Date.ToString(DateFormat, CultureInfo.CurrentCulture)</span> <span class="english">(@Date.ToString(DateFormat, new CultureInfo(EnglishCultureCode)))</span> </div>
在其他组件里直接调用:
<!-- 默认长日期格式 --> <DualDate Date="DateTime.Now" /> <!-- 自定义格式,比如带时间的短格式 --> <DualDate Date="DateTime.Now" DateFormat="f" />
还可以给组件加CSS样式,让两种日期的显示更协调。
注意点
- 英文文化代码可以根据需求调整,比如
en-GB对应英式日/月/年的格式,en-US是月/日/年格式。 - 确保项目已引用
System.Globalization,一般默认包含,若缺失可手动添加引用。
内容的提问来源于stack exchange,提问作者mz1378
相关产品推荐
相关产品推荐

