我正在尝试在 C# 中将 AM 和 PM 本地化为日期时间。
使用 C# 的“PMDesignator”和“AMDesignator”返回的值有多可靠(如下面的代码)?
如何使用相同的代码处理以下两种情况?
//Line# Output
//----- ------
void Main() //1
{ //2
DateTime dt = DateTime.Now; // it is 5:56 PM now //3 it is 5:56 PM now
//4
//Japanese //5
var JapaneseCulture = new System.Globalization.CultureInfo("ja"); //6
Console.WriteLine(JapaneseCulture.DateTimeFormat.PMDesignator); //7 午後
Console.WriteLine(JapaneseCulture.DateTimeFormat.AMDesignator); //8 午前
Console.WriteLine(dt.ToString("t",JapaneseCulture)); //9 17:56
Console.WriteLine(dt.ToString("hh:mm tt",JapaneseCulture)); //10 05:56 午後
//11
//German //12
var GermanCulture = new System.Globalization.CultureInfo("de"); //13
Console.WriteLine(GermanCulture.DateTimeFormat.PMDesignator); //14 (blank)
Console.WriteLine(GermanCulture.DateTimeFormat.AMDesignator); //15 (blank)
Console.WriteLine(dt.ToString("t",GermanCulture)); //16 17:56
Console.WriteLine(dt.ToString("hh:mm tt",GermanCulture)); //17 05:56
}
日语 -
PMDesignator、AMDesignator 有值,
但在使用“t”时未在第 9 行显示。
在这种情况下,第 10 行中指定的格式(“hh:mm tt”)给出了更正确的输出。
德语 -
PMDesignator、AMDesignator 没有值,
因此在第 16 行中使用“t”会给出正确的输出,
而使用“hh:mm tt”的第 17 行会给出错误的输出。
[编辑:阅读评论后:]“t”是否相当可靠地给出了“典型”使用的格式?(我之前没有本地化经验,所以我不太清楚这些值的可靠性)