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

nma*_*hur 25 c# datetime

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

Mar*_*rco 29

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

DateTime dt = DateTime.Parse("01:00 PM"); // No error checking
Run Code Online (Sandbox Code Playgroud)

或(有错误检查)

DateTime dt;
bool res = DateTime.TryParse("01:00 PM", out dt);
Run Code Online (Sandbox Code Playgroud)

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

dt.ToString("HH:mm");
Run Code Online (Sandbox Code Playgroud)

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


bob*_*mcr 18

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

DateTime localTime = DateTime.Now;

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


Pra*_*ush 9

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

    DateTime timeValue = Convert.ToDateTime("01:00 PM");
    Console.WriteLine(timeValue.ToString("HH:mm"));
Run Code Online (Sandbox Code Playgroud)


Har*_*san 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");
Run Code Online (Sandbox Code Playgroud)

  • 那不对,是吗?上午12点应该是0小时,而不是12小时. (3认同)

Shi*_*ant 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"));
Run Code Online (Sandbox Code Playgroud)

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

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


Pra*_*pal 5

您可以这样使用:

string date = "";

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

小时:12小时

毫米:分钟

tt:下午/上午

HH:24小时