You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 如何在Azure上显示巴西格式(dd/mm/yyyy)的DateTime

Azure部署网站日期格式异常解决方案

服务端全局文化配置

本地运行时默认继承操作系统的区域文化,Azure云实例默认文化为en-US,未做配置时会优先读取浏览器的Accept-Language头判断区域,导致日期格式转换异常,优先通过服务端配置锁定全局文化:

  • .NET 6及以上版本在Program.cs中添加如下配置:
using System.Globalization;
using Microsoft.AspNetCore.Localization;

var builder = WebApplication.CreateBuilder(args);

// 注册全局区域文化配置
builder.Services.Configure<RequestLocalizationOptions>(options =>
{
    var brCulture = new CultureInfo("pt-BR");
    options.DefaultRequestCulture = new RequestCulture(brCulture);
    options.SupportedCultures = new List<CultureInfo> { brCulture };
    options.SupportedUICultures = new List<CultureInfo> { brCulture };
    // 可选:关闭从请求头/Query/ Cookie读取区域设置,强制全局使用pt-BR
    options.RequestCultureProviders = new List<IRequestCultureProvider>();
});

var app = builder.Build();

// *注意:必须在路由、认证等其他中间件之前注册请求本地化中间件*
app.UseRequestLocalization();

// 其他中间件注册逻辑
app.Run();
  • 不想修改代码的话,直接在项目web.config文件中添加全局配置:
<configuration>
  <system.web>
    <globalization culture="pt-BR" uiCulture="pt-BR" enableClientBasedCulture="false" />
  </system.web>
</configuration>

前端日期渲染逻辑调整

如果确认服务端返回的日期字符串已经是dd-mm-yyyy格式,仍被浏览器自动转换为美国格式,按以下方法调整:

  • 避免依赖浏览器默认的日期格式化方法,使用toLocaleDateString时强制指定区域参数:
// 强制输出巴西格式日期
const formatDate = (date) => new Date(date).toLocaleDateString('pt-BR');
  • 不要直接给<input type="date" />赋值非ISO格式的日期字符串,可改用type="text"的输入框展示,或者先把日期转成ISO 8601格式后再赋值,通过自定义样式控制展示格式。

Azure实例配置校验

  • 登录Azure门户进入对应Web应用,在「配置」-「常规设置」中确认实例区域设置为Brazilian Portuguese,修改后需要重启应用生效。
  • 容器部署场景下,需要在Dockerfile中添加pt-BR区域文化的安装和默认配置,避免容器实例默认使用en-US文化。

内容的提问来源于stack exchange,提问作者Mário S Veríssimo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:48:03