您的位置:首页 >C#获取星期几及格式化方法
发布于2026-04-10 阅读(0)
扫一扫,手机访问
DateTime.DayOfWeek 返回的是 DayOfWeek 枚举值,本质为整数(0=Sunday…6=Saturday),非中文;ToString() 默认输出英文名,需用 ToString("dddd", new CultureInfo("zh-CN")) 或查表映射(如 string[] Weekdays = {"周日","周一",...})才能稳定输出中文星期。
返回的是 DayOfWeek 枚举值,本质是整数(0=Sunday,1=Monday…6=Saturday),不是字符串也不是中文。直接 .ToString() 会输出英文名(如 "Monday"),不是你想要的“周一”或“星期一”。
DateTime.Now.DayOfWeek.ToString() 直接当中文用,它不会自动本地化ToString() 的结果取决于当前线程的 CultureInfo,但默认仍是英文可以,但依赖当前线程的 CultureInfo。默认情况下,.NET 运行时使用系统区域设置,中文 Windows 通常能输出“星期一”,但服务器部署时可能变成英文。
DateTime.Now.ToString("dddd") → 在中文环境输出 "星期一",英文环境输出 "Monday"DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("zh-CN"))en-US,不设 UseRequestLocalization 或不配置 SupportedCultures 就容易翻车最稳的方式是查表映射,避开文化依赖。枚举值确定、范围小,查数组比走本地化更轻量、可控。
private static readonly string[] Weekdays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };Weekdays[(int)DateTime.Now.DayOfWeek] → 确保始终输出“周一”switch 或 if-else,数组索引快且不易漏分支"d" 是短日期格式(如 "2024/5/20"),和星期完全无关;"dddd" 才是完整星期名称。很多人搜“星期几”却试 ToString("d"),结果一脸懵。
"d" → 日期,不是 day of week"ddd" → 缩写星期(如 "Mon" 或 "周一",仍受文化影响)"dddd" → 完整星期名称(如 "Monday" / "星期一")DateTime.Now.ToString("d") 返回 "2024/5/20",跟星期几毫无关系上一篇:盘搜搜官网入口及网页版登录方法
下一篇:Mac自定义快捷键设置方法详解
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9