将数字转换为时间?

是否有一种灵活的方式将简单数字(包括陆军时间)转换为时间格式(上午,下午格式)? 我可以做一些繁琐的方法,但我只是想知道是否还有另一种方法

0800 => 8:00 am

2317 => 11:17 pm

DateTime dt = DateTime.ParseExact("0800", "HHmm", CultureInfo.InvariantCulture); string timestring = dt.ToString("h:mm tt"); 

请参阅格式代码的文档 。

希望这能指出你正确的方向:

  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)); 

DateTime.TryParse与所需的格式字符串一起使用。

如果您可以接受多种格式,那么您需要依次调用每个格式,直到找到匹配的格式 – 我认为这是“繁琐的方法”的意思。