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

DateTime.Now.ToLocalTime()不刷新?如何编写按系统配置格式输出时间的程序

按系统区域配置输出日期时间的解决方案

嘿,我懂你要实现的效果——让程序自动跟着系统区域设置的日期格式输出,不用手动改代码对吧?其实这事不难,.NET已经帮我们封装好了适配系统配置的方法,直接用就行。

给你上能直接用的代码示例(这里以WinForms按钮点击事件为例,控制台程序也可以复用核心逻辑):

private void btnShowDate_Click(object sender, EventArgs e)
{
    // 获取当前本地日期时间,DateTime.Now本身就是本地时间,不用额外调用ToLocalTime()哦
    DateTime currentDateTime = DateTime.Now;
    
    // 关键就在这:用"d"格式符,它会自动读取系统区域设置里的短日期格式
    string systemFormattedDate = currentDateTime.ToString("d");
    
    // 把结果展示出来,这里用MessageBox举例,你也可以输出到控制台或者Label控件里
    MessageBox.Show(systemFormattedDate);
}

给你拆解下核心点:

  • ToString("d") 是核心:这个格式字符串对应的是系统默认的短日期格式,不管你把系统区域设置成dd.mm.yyyy还是dd/mm/yyyy,它都会自动匹配当前配置输出。
  • 关于ToLocalTime():只有当你用DateTime.UtcNow获取UTC时间时,才需要用这个方法转成本地时间;DateTime.Now本身就是基于本地时区的时间,所以不用多此一举。

如果需要连时间一起输出,也可以用这些系统适配的格式符:

  • ToString("g"):短日期 + 短时间(跟随系统配置的时间格式)
  • ToString("G"):短日期 + 长时间(同样匹配系统设置)

这样不管用户怎么修改系统的区域/时钟格式,你的程序都能自动适配啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:49:39