有類似在FullDateTimePattern
中不包括週日的100種文化。你可以看到他們的短節目像this:
var cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
foreach (var culture in cultures.OrderBy(x => x.EnglishName))
{
if (!culture.DateTimeFormat.FullDateTimePattern.Contains("dddd"))
{
Console.WriteLine("{0} ({1}): {2}", culture.EnglishName, culture.Name, culture.DateTimeFormat.FullDateTimePattern);
}
}
許多歐洲或歐洲後裔的文化不包括它(我看到克羅地亞(克羅地亞)(HR-HR),丹麥語(丹麥) (DA-DK),英語(英國)(EN-GB),法語(加拿大)(FR-CA),瑞典(瑞典)(SV-SE)),再加上我看到日本,俄語,漢語...世界是一個很大的地方,在許多地方,一週的日子不被認爲是日期的一部分。您有兩種選擇:接受它,或者對於任何不喜歡日期模式的文化,請創建包含任何所需內容的 FullDateTimePattern
。
例如,你可以:
public static CultureInfo DanishCultureInfo = InitCultureInfoWithWeek("da-DK");
private static CultureInfo InitCultureInfoWithWeek(string name)
{
var ci = CultureInfo.GetCultureInfo(name);
ci = (CultureInfo)ci.Clone();
ci.DateTimeFormat.FullDateTimePattern = "dddd " + ci.DateTimeFormat.FullDateTimePattern;
ci = CultureInfo.ReadOnly(ci);
return ci;
}
public static CultureInfo GetCultureForPrinting(string name)
{
var ci = CultureInfo.GetCultureInfo(name);
if (string.Equals(name, "da-DK", StringComparison.InvariantCultureIgnoreCase))
{
return DanishCultureInfo;
}
else
{
return CultureInfo.GetCultureInfo(name);
}
}
然後當你想用文化來打印而不是使用CultureInfo.GetCultureInfo()
的東西,你用GetCultureForPrinting()
有預定義的標準格式,請參見:https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx –
請出示[MCVE] - 有沒有辦法知道你如何弄錯了文化。 –
@EvanTrimboli它不會幫助OP,因爲他們無法根據輸出得到合理的cultureInfo。 –