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

DateTime.UtcNow.ToString格式不一致 如何强制使用/作为日期分隔符

问题根本原因

/和:在.NET的日期时间格式化字符串中属于特殊占位符:/会被自动替换为当前系统区域设置的日期分隔符,:会被替换为当前区域的时间分隔符。不同设备的区域配置不同,自然会输出你遇到的多种异常格式。

可靠解决方案

有两种通用方案可以100%强制输出固定格式的日期时间字符串,不需要后续做字符替换:

方案1:传入不变区域性参数(推荐)

调用ToString时指定CultureInfo.InvariantCulture作为第二个参数,即可强制使用标准的/作为日期分隔符、:作为时间分隔符,完全忽略设备本地的区域配置。
代码示例:

// 需要先引用命名空间 using System.Globalization;
string dtStr = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);

该方案符合.NET国际化开发最佳实践,适合有其他多区域格式化需求的场景。

方案2:转义格式字符串中的分隔符

将格式字符串里的/和:用单引号包裹,标记为固定字面量,框架就不会把它们作为区域占位符做替换。
代码示例:

// 无需额外引用命名空间
string dtStr = DateTime.Now.ToString("yyyy'/'MM'/'dd HH':'mm':'ss");

该方案写法简洁,仅需修改格式字符串即可生效,适合单纯需要固定分隔符的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:39:03