将AM / PM时间转换为24小时格式?

我需要将12小时格式时间(上午/下午)转换为24小时格式时间,例如使用C#将时间从01:00 PM转换为13:00。 我怎么转换它?

如果您需要将字符串转换为DateTime,您可以尝试

 DateTime dt = DateTime.Parse("01:00 PM"); // No error checking 

或(有错误检查)

 DateTime dt; bool res = DateTime.TryParse("01:00 PM", out dt); 

变量dt包含您的日期时间,因此您可以编写它

 dt.ToString("HH:mm"); 

最后一个适用于您拥有的每个DateTime var,因此如果您仍有DateTime,则可以通过这种方式将其写出来。

您将希望熟悉自定义日期和时间格式字符串 。

 DateTime localTime = DateTime.Now; // 24 hour format -- use 'H' or 'HH' string timeString24Hour = localTime.ToString("HH:mm", CultureInfo.CurrentCulture); 

将字符串转换为DateTime,您可以尝试

  DateTime timeValue = Convert.ToDateTime("01:00 PM"); Console.WriteLine(timeValue.ToString("HH:mm")); 
 int hour = your hour value; int min = your minute value; String ampm = your am/pm value; hour = ampm == "AM" ? hour : (hour % 12) + 12; //convert 12-hour time to 24-hour var dateTime = new DateTime(0,0,0, hour, min, 0); var timeString = dateTime.ToString("HH:mm"); 

通过以下代码将DateTime从12小时转换为24小时。

 string currentDateString = DateTime.Now.ToString("dd-MMM-yyyy h:mm tt"); DateTime currentDate = Convert.ToDateTime(currentDateString); Console.WriteLine("String Current Date: " + currentDateString); Console.WriteLine("Converted Date: " + currentDate.ToString("dd-MMM-yyyy HH:mm")); 

每当你想要时间应该在24小时内显示使用格式“HH”

有关更多详细信息,请参阅以下链接: 自定义日期和时间格式字符串

你可以像这样使用:

 string date = ""; date = DateTime.ParseExact("01:00 PM" , "h:mm tt", CultureInfo.InvariantCulture).ToString("HH:mm"); 

h:12个小时

mm:分钟

tt:PM / AM

HH:24小时

您可以使用ParseExact()方法获取DateTime对象。 然后,您可以使用该DateTime对象的ToString()方法将字符串转换为您需要的内容,如此处所示。

以下是一些示例代码:

DateTime time_AMPM = DateTime.Now; string time_24hr = time_AMPM.TimeOfDay.ToString().Substring(0, 8);

您可以使用Cultures来解析和格式化您的字符串,例如

 var cultureSource = new CultureInfo("en-US", false); var cultureDest = new CultureInfo("de-DE", false); var source = "01:00 pm"; var dt = DateTime.Parse(source, cultureSource); Console.WriteLine(dt.ToString("t", cultureDest)); 

打印时间为13:00