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

.NET Core 7中DateTime.ToString()未按指定格式输出问题

问题原因

在.NET的自定义日期格式规则里,/是区域性敏感的日期分隔符占位符,它会自动替换为当前应用所使用的区域性(Culture)中定义的日期分隔符。如果你的Web应用默认使用的区域性日期分隔符是-,就会出现代码里写的/被替换成连字符的情况。

解决方案

1. 指定不变区域性强制用斜杠

直接在ToString方法中传入InvariantCulture,强制使用固定的斜杠作为分隔符:

@DateTime.UtcNow.ToString("MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture)

2. 转义斜杠作为普通字符

如果不想指定区域性,可以通过转义把/当作普通字符处理,有两种方式:

// 用反斜杠转义
@DateTime.UtcNow.ToString("MM\\/dd\\/yyyy")
// 或者用单引号包裹
@DateTime.UtcNow.ToString("MM'/'dd'/'yyyy")

3. 全局设置应用区域性

如果希望整个Web应用都使用以/作为日期分隔符的区域性(比如en-US),可以在Program.cs中配置请求本地化:

var builder = WebApplication.CreateBuilder(args);

// 配置默认区域性为en-US
builder.Services.Configure<RequestLocalizationOptions>(options =>
{
    var enUsCulture = new System.Globalization.CultureInfo("en-US");
    options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture(enUsCulture);
    options.SupportedCultures = new[] { enUsCulture };
    options.SupportedUICultures = new[] { enUsCulture };
});

var app = builder.Build();

// 启用请求本地化中间件
app.UseRequestLocalization();

// 其他中间件配置...
app.Run();

内容的提问来源于stack exchange,提问作者Bagzli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:38:18