如何在C#中将日期格式化为「星期全称 月份全称 日 时分秒 年」格式?
实现目标日期格式的简单方法
嘿,你完全不用手动拆分日期组件来拼接,C#的DateTime类自带了强大的格式化能力,一行代码就能搞定你想要的格式!
核心思路:使用自定义格式字符串
你需要的「Tuesday April 17 6:12:02 2018」格式,对应的格式符组合是:"dddd MMMM d H:mm:ss yyyy",每个部分的含义如下:
dddd:输出星期的完整名称(比如Tuesday)MMMM:输出月份的完整名称(比如April)d:输出不带前导零的日期(17就显示17,5就显示5)H:mm:ss:输出24小时制的时分秒(如果要12小时制且不带AM/PM,可换成h:mm:ss)yyyy:输出四位年份
完整代码示例
把你原来的代码简化后,直接用ToString()方法传入格式字符串即可:
using System; // 如果需要强制英文格式,需引入这个命名空间 // using System.Globalization; class Program { static void Main(string[] args) { var yesterday = DateTime.Now.AddDays(-1); // 默认使用系统当前文化输出,若系统是英文环境直接这样写 Console.WriteLine(yesterday.ToString("dddd MMMM d H:mm:ss yyyy")); // 如果你的系统是中文等非英文环境,想要强制输出英文格式,指定不变文化: // Console.WriteLine(yesterday.ToString("dddd MMMM d H:mm:ss yyyy", CultureInfo.InvariantCulture)); } }
为什么不建议手动拼接?
你原来的拆分方式不仅繁琐,还容易踩坑——比如不同文化下的星期/月份名称会乱掉,哪天需要前导零还要额外处理。用DateTime自带的格式化方法能自动适配这些细节,代码也更简洁易读。
内容的提问来源于stack exchange,提问作者lawal yemi
相关产品推荐
相关产品推荐

