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

如何在C#字符串插值中避免重复使用日期格式字符串

避免重复日期格式字符串的几种方案

下面提供几个比你给出的变通方法更优雅的实现,不用重复写yyyy-MM-dd HH:mm:ss格式字符串:

  • 扩展方法(推荐用于全局复用)
    把日期格式封装成DateTime的扩展方法,整个项目都能直接调用,代码可读性拉满:

    public static class DateTimeExtensions
    {
        // 把格式字符串只定义一次
        private const string DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss";
        
        public static string ToStandardString(this DateTime dateTime)
        {
            return dateTime.ToString(DefaultDateTimeFormat);
        }
    }
    
    // 调用方式
    Console.WriteLine($"{DateTime.Now.ToStandardString()} {DateTime.Now.AddDays(1).ToStandardString()}");
    
  • 局部函数(适合单方法内临时复用)
    如果只是在单个方法里需要这个格式,不用定义全局扩展,写个局部函数就行:

    void YourMethod()
    {
        // 局部函数封装格式逻辑
        string FormatDateTime(DateTime dt) => dt.ToString("yyyy-MM-dd HH:mm:ss");
        
        Console.WriteLine($"{FormatDateTime(DateTime.Now)} {FormatDateTime(DateTime.Now.AddDays(1))}");
    }
    
  • 自定义格式提供器(适合全局统一格式场景)
    如果整个项目都要统一用这个日期格式,可以自定义格式提供器,一次性搞定所有日期格式化:

    public class StandardDateTimeFormatter : IFormatProvider, ICustomFormatter
    {
        public object GetFormat(Type formatType)
        {
            return formatType == typeof(ICustomFormatter) ? this : null;
        }
    
        public string Format(string format, object arg, IFormatProvider formatProvider)
        {
            if (arg is DateTime dateTime)
            {
                // 没指定格式就用默认的,指定了就用用户给的格式
                return string.IsNullOrEmpty(format) 
                    ? dateTime.ToString("yyyy-MM-dd HH:mm:ss") 
                    : dateTime.ToString(format);
            }
            return arg?.ToString() ?? string.Empty;
        }
    }
    
    // 调用方式
    var formatter = new StandardDateTimeFormatter();
    Console.WriteLine(string.Format(formatter, "{0} {1}", DateTime.Now, DateTime.Now.AddDays(1)));
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 10:57:13