c#时间显示AM PM

Nat*_*Pet 3 c#

我知道我们可以执行以下操作来显示AM PM一段时间.

    String.Format("{0:t}", dt);  // "4:05 PM" 
Run Code Online (Sandbox Code Playgroud)

如果我想为AM显示A,为PM显示P,该怎么办?有格式吗?

Mar*_*lon 6

另一种解决方案是使用System.Globalization.DateTimeFormatInfo类,它允许您指定希望如何格式化AM/PM:

DateTimeFormatInfo timeFormat = new DateTimeFormatInfo();
timeFormat.ShortTimePattern = CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern;
timeFormat.AMDesignator = "A";
timeFormat.PMDesignator = "P";

// Both of these are the same:
string a = DateTime.Now.ToString("t", timeFormat);
string b = String.Format(timeFormat, "{0:t}", DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

你可以用它做完全自定义的东西:

timeFormat.AMDesignator = "cookies";
timeFormat.PMDesignator = "bagels";
Run Code Online (Sandbox Code Playgroud)

下午4:05的输出示例:

4:05 bagels
Run Code Online (Sandbox Code Playgroud)