将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