在c#中格式化日期时间时没有显示

本文关键字:显示 时间 日期 格式化 | 更新日期: 2023-09-27 18:02:32

使用这个特定的代码,我没有显示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

在c#中格式化日期时间时没有显示

如果您确实需要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); // ""