是否有一种灵活的方式将简单数字(包括陆军时间)转换为时间格式(上午,下午格式)?我可以做一些繁琐的方法,但我只是想知道是否还有另一种方式
0800 =>上午8:00
2317 =>晚上11:17
答案 0 :(得分:12)
DateTime dt = DateTime.ParseExact("0800", "HHmm", CultureInfo.InvariantCulture);
string timestring = dt.ToString("h:mm tt");
有关格式代码,请参阅documentation。
答案 1 :(得分:1)
希望这能指出你正确的方向:
string time = "0800";
DateTime dt = DateTime.ParseExact(string.Format("{0}:{1}", time.Substring(0, 2), time.Substring(2, 2)), "HH:mm", CultureInfo.InvariantCulture);
MessageBox.Show(string.Format("{0:h:mm tt}", dt));
time = "2345";
dt = DateTime.ParseExact(string.Format("{0}:{1}", time.Substring(0, 2), time.Substring(2, 2)), "HH:mm", CultureInfo.InvariantCulture);
MessageBox.Show(string.Format("{0:h:mm tt}", dt));
答案 2 :(得分:1)
将DateTime.TryParse
与您想要的格式字符串一起使用。
如果您可以接受多种格式,那么您需要依次调用每种格式,直到找到匹配的格式 - 我认为这是“繁琐的方法”的意思。