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

如何将本地化星期名称转换为C#的DayOfWeek枚举?

将本地化星期名称转换为DayOfWeek枚举(C#)

原生解决方案:利用DateTime解析

C#里有原生方式可直接将本地化星期名称转换为DayOfWeek枚举,不用手动写switch或维护翻译映射表,核心是借助DateTime.TryParseExact结合指定文化信息完成解析:

代码示例(德语星期名称转换)

using System;
using System.Globalization;

public static DayOfWeek? ParseGermanDayName(string dayName)
{
    // 指定德语文化信息
    var deCulture = new CultureInfo("de-DE");
    
    // 解析星期全称,自动忽略大小写
    if (DateTime.TryParseExact(
        dayName, 
        "dddd", 
        deCulture, 
        DateTimeStyles.None, 
        out DateTime result))
    {
        return result.DayOfWeek;
    }
    
    // 可选:同时支持缩写形式(如"Mo"对应Montag)
    if (DateTime.TryParseExact(
        dayName, 
        "ddd", 
        deCulture, 
        DateTimeStyles.None, 
        out result))
    {
        return result.DayOfWeek;
    }
    
    // 解析失败返回null,可根据业务需求改为抛出异常
    return null;
}

关键说明

  • 自动处理大小写问题,比如"montag"或"MONTAG"都能解析为DayOfWeek.Monday
  • 切换CultureInfo参数(如"fr-FR"对应法语)就能适配多语言场景
  • "dddd"对应星期全称,"ddd"对应缩写形式,可根据实际存储格式选择或同时支持

进阶:适配多种格式场景

如果存储的文本有多种格式(全称、缩写、地区变体),可以通过DateTimeFormatInfo.GetAllDateTimePatterns获取目标文化下所有支持的星期格式,批量尝试解析:

public static DayOfWeek? ParseLocalizedDayName(string dayName, string cultureCode)
{
    var culture = new CultureInfo(cultureCode);
    // 获取所有包含星期的格式模板
    var fullDayPatterns = culture.DateTimeFormat.GetAllDateTimePatterns('D');
    var shortDayPatterns = culture.DateTimeFormat.GetAllDateTimePatterns('d');
    var allPatterns = fullDayPatterns.Concat(shortDayPatterns).Distinct();

    foreach (var pattern in allPatterns)
    {
        if (pattern.Contains("dddd") || pattern.Contains("ddd"))
        {
            if (DateTime.TryParseExact(dayName, pattern, culture, DateTimeStyles.None, out DateTime result))
            {
                return result.DayOfWeek;
            }
        }
    }

    return null;
}

对比手动映射的优势

  • 不用手动维护各语言的星期名称映射表,避免遗漏或翻译错误
  • 自动适配目标文化的本地化规则,比如部分地区星期起始日差异,枚举会自动对应正确值
  • 天然支持大小写不敏感匹配,解决你提到的大小写错误问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:30:04