C# 如何仅从.NET中的语言获取日名

C# 如何仅从.NET中的语言获取日名,c#,cultureinfo,regioninfo,C#,Cultureinfo,Regioninfo,假设我只有一个国家代码(en、de、fr),我需要用这种语言显示工作日。 我知道RegionInfo和CultureInfo,但我找不到解决方案。 如果我从(例如)“en”创建国家信息,则其中没有日期时间信息。 也可以只取第一个匹配区域。例如,en US代表en或de de代表de 我不知道日名是否有差异,但我知道在几个月内会有一些差异。 二月份——二月份——无论如何,我不在乎。 事件,如果它可能是“有点不同”(看到二月而不是二月)-它仍然是德国 这就是我想要达到的目标-周一写一篇文章-周一写一

假设我只有一个国家代码(en、de、fr),我需要用这种语言显示工作日。 我知道RegionInfo和CultureInfo,但我找不到解决方案。 如果我从(例如)“en”创建国家信息,则其中没有日期时间信息。 也可以只取第一个匹配区域。例如,en US代表en或de de代表de

我不知道日名是否有差异,但我知道在几个月内会有一些差异。 二月份——二月份——无论如何,我不在乎。 事件,如果它可能是“有点不同”(看到二月而不是二月)-它仍然是德国

这就是我想要达到的目标-周一写一篇文章-周一写一篇文章,然后再写一篇文章

有没有一种方法可以仅仅从语言代码创建一个区域?

通常是在你说“我不在乎”的时候,你才开始反对API

无论如何,这应该是可行的:

var list = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
var ci = list.FirstOrDefault(c => c.IetfLanguageTag.StartsWith("de"));

var ri = new RegionInfo(ci.Name);
Console.WriteLine("Today = {0:dddd MMMM yyyy}", DateTime.Today);
Dim days作为字符串() 将月份设置为字符串() Dim cul作为新系统。全球化。文化信息(“de de”) 月数=截止日期时间格式月数 days=cul.DateTimeFormat.DayNames

尝试以下方法:-

string culture=“您的文化”

CultureInfo myCulture=新的CultureInfo(文化)

DateTimeFormatInfo dtfi=myCulture.DateTimeFormat

dayString=dtfi.GetDayName(您在此处的日期..)


Charlie G

这篇文章可能会有所帮助:要从“en”转到文化信息,一个更快的方法是

CultureInfo ci = CultureInfo.CreateSpecificCulture("en")
至于第二部分,我相信你是在问日名,所以你会写

string[] names = ci.DateTimeFormat.DayNames 
由于“de”是一种中性文化,如果您尝试CultureInfo.GetCultureInfo(“de”),则无法从DateTimeFormat中获取日名

我建议您在本例中运行CultureInfo.CreateSpecificCulture(“de”),因为它将创建一个非中性的区域性…在“de”的情况下,我从.NET中得到了一个“de de”的区域性:D

    CultureInfo tmp = CultureInfo.CreateSpecificCulture("de");

    string[] names = tmp.DateTimeFormat.DayNames;
    foreach(string name in names)
    {
        Console.WriteLine(name);
    }

这将为您提供一个文化列表:

    Dim ci As CultureInfo
    For Each ci In CultureInfo.GetCultures(CultureTypes.SpecificCultures)
        Console.WriteLine(ci.Name)
    Next
输出: 阿拉伯语 保加利亚语 加泰罗尼亚语 繁体中文 捷克语 丹麦语 德德 埃尔格 恩美 芬兰语 法语 希伯来文 胡虎 是 它 日语 朝鲜语 荷兰语 挪威语 波兰语 葡萄牙语 滚 茹茹 人力资源 斯洛伐克语 sq AL 瑞典语 第 土耳其语 尿激酶 身份证 英国联合航空公司 在旁边 sl SI et EE 吕吕 对,对 法尔 越南 海姆 阿兹拉坦阿兹 欧盟ES mk-mk 南非荷兰语 卡戈 福福 你好 米女士 kk-KZ ky千克 西南克 乌兹拉坦乌兹 tt RU 巴因 顾茵 助教 特因 千牛 林先生 萨因 锰锰 德国劳埃德船级社 角 syr-SY dv MV 智商 中弘中国 德文 欧洲标准 es MX fr BE 它叫CH nl BE nn否 葡萄牙语 高级拉丁语 sv-FI 阿兹赛尔阿兹 BN女士 uz-Cyrl-uz ar-EG 中国香港 德阿特 恩奥 西班牙语 fr CA 高级Cyrl CS 阿尔利 zh SG 德鲁 恩卡 es GT fr CH ar DZ zh-MO 德利 新西兰 es CR 吕神父 阿玛 恩尼 埃斯帕 fr MC ar-TN 恩扎 是的 阿伦 恩吉姆 埃斯韦 阿耶 en-029 es公司 阿西 恩BZ es PE 阿乔 恩特 阿根廷 氩磅 en ZW es EC ar千瓦 en-PH es CL 氩原子发射 埃斯乌伊 ar BH 易怒的 ar质量保证 埃斯波 es SV es HN 埃斯尼 es公共关系 sma编号 bn BD 英国皇家音乐学院学士 tg-Cyrl-TJ 英国政府 嗯,我的 mn Mong中国 prs AF 钨锡 rw rw qut GT 萨鲁 gsw FR co-FR rm CH 新西兰密苏里州 ug CN 溴阻燃剂 莫哈卡 arn CL 盖伊 二CN sma SE 高级拉顿文学士 库兹体育 ig NG 吉隆坡 lb LU 巴鲁 nso ZA 库兹波 吴友友 手机短信 豪撒语 人力资源学士 菲林 ps AF fy NL ne-NP 美国东部 伊乌罐头 库兹欧共体 斯尔克 smj SE 洛拉 km KH cy GB 博康 硒硒 smj号 如 毫升 瑟菲 或者 高级青年文学学士 英国国民银行 恩恩 dsb DE tk商标 smn-FI oc FR 我们 塞诺 mt mt 英国文学学士 祖扎 xh ZA tn ZA tzm Latn DZ iu Latn CA
hsb DE

DateTime.ToString(“dddd”,新文化信息(“zh TW”))


上述代码将于周一打印为星期一 (Chinise locale)。

+1,但是您应该使用
文化类型。NeutralCultures
而不是
特定文化
。@Randolpho:不,下一步是创建RegionInfo,并在使用中性文化时抛出。我们需要一个(随机)特定的区域性作为语言名称。问题是提供“-DE”部分(对于任何给定的语言)。虽然+1-每个中性区域性(“en”,“DE”)都与默认特定区域性(“en-US”,“DE-DE”)相关联,但还没有计算出此方法中的回退/查找。好的,这比我的第一个默认值要好。谢谢你Jennifer-Sooo easy:)也谢谢你Henk-亚军:)我猜你不能使用CultureInfo.CurrentCulture?