使用字符串格式非常简单
上.ToString("") :
将 23:12 转换为 11:12 Pm 的示例:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("hh:mm tt"); // this show 11:12 Pm
var res2 = d.ToString("HH:mm"); // this show 23:12
Console.WriteLine(res);
Console.WriteLine(res2);
Console.Read();
稍等一下,这并不是您需要关心的全部内容是系统文化,因为在具有其他语言的 Windows 上执行的相同代码,特别是具有不同文化语言的代码将使用相同的代码生成不同的结果
设置为阿拉伯语言文化的窗口示例将显示如下:
// 23:12 前
م 表示晚上(مساء 的第一个字母)。
在另一种系统文化中,取决于 Windows 区域和语言选项中设置的内容,它将显示 // 23:12 du。
您可以在 Windows 区域和语言下的 Windows 控制面板上的不同格式之间进行更改 -> 当前格式(组合框)并更改...应用它对您的应用程序进行重建(执行)并观看我在说什么。
那么如果当前系统的文化未设置为英语,我可以在英语事件中强制显示 Am 和 Pm 单词吗?
只需添加两行即可:->
第一步添加using System.Globalization;
在您的代码之上
并修改以前的代码是这样的:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("HH:mm tt", CultureInfo.InvariantCulture); // this show 11:12 Pm
InvariantCulture => 使用默认的英文格式。
另一个问题我想让 pm 使用阿拉伯语或特定语言,即使我使用设置为英语(或其他语言)区域格式的窗口?
阿拉伯语示例的解决方案:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("HH:mm tt", CultureInfo.CreateSpecificCulture("ar-AE"));
这将显示 // 23:12 م
如果我的系统设置为英语区域格式,则事件。如果您想要另一种语言格式,您可以更改“ar-AE”。每种语言及其格式都有一个列表。
例子:
ar ar-SA Arabic
ar-BH ar-BH Arabic (Bahrain)
ar-DZ ar-DZ Arabic (Algeria)
ar-EG ar-EG Arabic (Egypt)
big list...
如果您还有其他问题,请告诉我。