C# 在C中将AM/PM时间转换为标准时间格式hh:mm

C# 在C中将AM/PM时间转换为标准时间格式hh:mm,c#,time,C#,Time,在我的ASP.NET web表单中,我有3个字段-小时、分钟和am/pm下拉列表。如何将这3个字段的值转换为一个变量,然后将am/pm小时转换为标准24小时时间,如05:20PM=17:20。这需要用C语言完成 感谢您事先提供的帮助。如果只需要时间,您可以将虚拟的年、月、日放在上面 DateTime time = new DateTime(year, month, day, hour, minute, second); string time = time.ToString("HH:mm");

在我的ASP.NET web表单中,我有3个字段-小时、分钟和am/pm下拉列表。如何将这3个字段的值转换为一个变量,然后将am/pm小时转换为标准24小时时间,如05:20PM=17:20。这需要用C语言完成


感谢您事先提供的帮助。

如果只需要时间,您可以将虚拟的年、月、日放在上面

DateTime time = new DateTime(year, month, day, hour, minute, second);
string time = time.ToString("HH:mm");

如果只需要时间的话,你可以把虚拟的年、月、日放进去

DateTime time = new DateTime(year, month, day, hour, minute, second);
string time = time.ToString("HH:mm");

你是说你的开始是以小时、分钟和am/pm的不同值开始的吗

    public string Get24HourTime(int hour, int minute, string ToD)
    {           
        int year = DateTime.Now.Year;
        int month = DateTime.Now.Month;
        int day = DateTime.Now.Day;
        if (ToD.ToUpper() == "PM") hour = (hour  % 12) + 12;

        return new DateTime(year, month, day, hour, minute, 0).ToString("HH:mm");
    }

你是说你的开始是以小时、分钟和am/pm的不同值开始的吗

    public string Get24HourTime(int hour, int minute, string ToD)
    {           
        int year = DateTime.Now.Year;
        int month = DateTime.Now.Month;
        int day = DateTime.Now.Day;
        if (ToD.ToUpper() == "PM") hour = (hour  % 12) + 12;

        return new DateTime(year, month, day, hour, minute, 0).ToString("HH:mm");
    }
你必须注意到12:00是午夜,应该产生00:00。事实上,12:00AM比1:00AM早一个小时,使用模运算,您必须像这样做:


if(hour == 12)hour = 0;
if(AMPM == "PM") hour = (hour % 12) + 12;
你必须注意到12:00是午夜,应该产生00:00。事实上,12:00AM比1:00AM早一个小时,使用模运算,您必须像这样做:


if(hour == 12)hour = 0;
if(AMPM == "PM") hour = (hour % 12) + 12;

时间是一个用户输入值。时间是一个用户输入值。在50%的情况下,不必要的重新分配使用:如果ampm==PM小时=小时%12+12;仍然做这项工作+1非常正确。我最初将该代码内联到DateTime构造函数参数中,该参数本来会保留原始的小时值,但看起来太忙了。在50%的情况下,不必要的重新分配,请使用:if ampm==PM hour=hour%12+12;仍然做这项工作+1非常正确。我最初将该代码内联到DateTime构造函数参数中,该参数将保留原始的小时值,但看起来太忙了。是的,这是正确的。用户将为小时分钟和am/pm分别设置值。代码不起作用。它说DateTime不能接受5个参数。我想这就是我没有测试代码的原因。DateTime需要一个秒数的参数。我刚刚使用了0,但我想这真的取决于您。如果时间是12:xx AM,将12添加到小时将导致无效的小时值24。DateTime构造函数可能会对其进行模化,但更正确的方法是添加,然后进行模化,反之亦然。是的,这是正确的。用户将为小时分钟和am/pm分别设置值。代码不起作用。它说DateTime不能接受5个参数。我想这就是我没有测试代码的原因。DateTime需要一个秒数的参数。我刚刚使用了0,但我想这真的取决于您。如果时间是12:xx AM,将12添加到小时将导致无效的小时值24。DateTime构造函数可以对其进行模化,但更正确的方法是添加,然后进行模化,反之亦然。