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

时间:2011-12-01 07:00:24

标签: c# datetime

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

11 个答案:

答案 0 :(得分:26)

如果您需要将字符串转换为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,你可以用这种方式写出来。

答案 1 :(得分:18)

您需要熟悉Custom Date and Time Format Strings

DateTime localTime = DateTime.Now;

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

答案 2 :(得分:9)

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

    DateTime timeValue = Convert.ToDateTime("01:00 PM");
    Console.WriteLine(timeValue.ToString("HH:mm"));

答案 3 :(得分:6)

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

答案 4 :(得分:5)

通过以下代码将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”

您可以参考以下链接了解更多详情: Custom Date and Time Format Strings

答案 5 :(得分:5)

您可以这样使用:

string date = "";

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

h:12小时

     

mm:分钟

     

tt:PM / AM

      HH:24小时

答案 6 :(得分:0)

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

答案 7 :(得分:0)

以下是一些示例代码:

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

答案 8 :(得分:0)

using System;

class Solution
{
    static string timeConversion(string s)
    {
        return DateTime.Parse(s).ToString("HH:mm");
    }

    static void Main(string[] args)
    {
        Console.WriteLine(timeConversion("01:00 PM"));
        Console.Read();
    }
}

答案 9 :(得分:0)

DateTime dt = DateTime.Parse("01:00 pm"); //Time in string formate

TimeSpan time = new TimeSpan(); 

time = dt.TimeOfDay;

Console.WriteLine(time);

结果:13:00:00

答案 10 :(得分:-1)

您可以使用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