使用字符串格式非常简单
on .ToString(""):
如果你使用"hh" ->>小时,使用从01点到12点的12小时时钟。
如果你用"HH" ->>小时,使用24小时制的时钟,从00到23。
如果您添加"tt" ->>上午/下午指示符。
例如从23:12转换到11:12 Pm:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("hh:mm tt"); // this shows 11:12 PM
var res2 = d.ToString("HH:mm"); // this shows 23:12
Console.WriteLine(res);
Console.WriteLine(res2);
Console.Read();
等一下,这不是所有你需要关心的其他东西是系统文化,因为相同的代码在其他语言的窗口上执行
特别是在不同文化背景下,相同的代码会产生不同的结果
例如,窗口设置为阿拉伯语文化将显示如下:
23:12
م的意思是傍晚(مساء的首字母)。
在另一个系统区域性(取决于Windows区域和语言选项的设置)中,它将显示// 23:12 du。
您可以在Windows控制面板上的Windows区域和语言下的不同格式之间进行更改->当前格式(组合框)和更改…应用它做一个重建(执行)你的应用程序,看看我在说什么。
如果>当前系统的文化没有设置为英语,我可以强迫谁显示Am和Pm单词在英语事件?
简单只需添加两行:->
第一步添加使用System.Globalization;在你的代码之上
并修改Previous代码如下所示:
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 =>,使用默认的英文格式。
另一个问题,我想有下午是在阿拉伯语或特定的语言,即使我使用窗口设置为英语(或其他语言)区域格式?
阿拉伯语示例的解决方案:
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...
如果你还有其他问题,请告诉我。