如何设置DateTime格式:添加星期前缀并转换日期显示样式
如何设置DateTime格式以显示带星期的英文日期
嘿,这个需求很常见,咱们直接用.NET里DateTime的ToString方法配合自定义格式字符串就能轻松搞定,分两种场景给你说明白:
1. 直接格式化当前时间(DateTime.Now)
如果你是要直接把DateTime.Now转换成目标格式,只需要给ToString传入对应的格式字符串就行:
// 基础用法,依赖系统默认文化 string formattedDate = DateTime.Now.ToString("dddd , dd MMMM yyyy");
格式符含义拆解:
dddd:输出完整的星期名称(比如Sunday、Monday)dd:两位数字的日期(不足两位自动补0,比如27、05)MMMM:输出完整的月份英文名称(比如May、January)yyyy:四位数字的年份(比如2018)
注意:系统文化的影响
如果你的程序运行环境默认不是英文文化(比如中文系统),直接用上面的代码会输出中文的星期和月份。这时候需要指定英文文化信息来确保输出是英文:
// 指定英文(美国)文化,确保输出英文的星期和月份 var enUSCulture = new System.Globalization.CultureInfo("en-US"); string formattedDate = DateTime.Now.ToString("dddd , dd MMMM yyyy", enUSCulture);
2. 先解析现有日期字符串再格式化
如果你已经有了"27/5/2018"这样的日期字符串,需要先把它解析成DateTime对象,再进行格式化:
string originalDateString = "27/5/2018"; // 解析字符串,格式要和原字符串匹配:d/M/yyyy(日期1-2位,月份1-2位,年份4位) if (DateTime.TryParseExact(originalDateString, "d/M/yyyy", null, System.Globalization.DateTimeStyles.None, out DateTime parsedDate)) { // 格式化解析后的DateTime对象 var enUSCulture = new System.Globalization.CultureInfo("en-US"); string formattedDate = parsedDate.ToString("dddd , dd MMMM yyyy", enUSCulture); // 这里就可以使用formattedDate了 } else { // 处理解析失败的情况,比如原字符串格式不正确 }
这样处理后,就能得到你想要的Sunday , 27 May 2018格式啦。
内容的提问来源于stack exchange,提问作者Yann Kang
相关产品推荐
相关产品推荐

