使用这个特定的代码,我没有显示AM PM。我试着搜索堆栈溢出,但没有找到任何关于这个特定格式。代码中是否有什么错误阻止了tt显示?
DateTime.Now.ToString("dddd d MMMM yyyy hh:mm tt", new System.Globalization.CultureInfo(SessionIsFrench.Value ? "fr-CA" : "en-US"));
SessionIsFrench是true
如果您确实需要AM/PM部分,您可以将日期和时间部分分别格式化,并且始终使用"en-US"作为时间。
var now = DateTime.Now;
var date = now.ToString("dddd d MMMM", new System.Globalization.CultureInfo(SessionIsFrench.Value ? "fr-CA" : "en-US"));
var time = now.ToString("hh:mm tt", new System.Globalization.CultureInfo("en-US"));
var dateTime = string.Format("{0} {1}", date, time);
代码没有问题,只是AM和PM没有为fr-CA定义。
var c = new System.Globalization.CultureInfo("fr-CA");
Console.WriteLine(c.DateTimeFormat.AMDesignator); // ""
Console.WriteLine(c.DateTimeFormat.PMDesignator); // ""