ชั่วโมงจาก DateTime? ในรูปแบบ 24 ชั่วโมง


157

ดังนั้นฉันมี DateTime นี้ และสิ่งที่ฉันต้องการทำคือรับชั่วโมง แต่แสดงในรูปแบบ 24 ชั่วโมง
ตัวอย่างเช่น
หากชั่วโมง 2:20:23 น. ฉันต้องการแปลงเป็น 14:20 และนั่นคือ

ฉันทำงานกับ Visual C # ความคิดใด ๆ โปรดขอบคุณ

ฉันมีอะไรเช่นนี้

public static string FormatearHoraA24(DateTime? fechaHora)
{
    if (!fechaHora.HasValue)
        return "";

    string retornar = "";
    //here goes what i need
}

@OrelEraki คุณจริงจังไหม? คำถามนี้ถูกโพสต์ก่อนหน้านั้นหนึ่งถึงสองปี อย่างน้อยตรวจสอบข้อเท็จจริงของคุณก่อนโทรซ้ำ
Archibald

ไม่จำเป็นต้องได้รับการออกเป็นในปี 2014 ลบออก
Orel Eraki

4
"hh" ในกรณีที่ต่ำกว่าสำหรับสัญกรณ์ am / pm "HH" สำหรับสัญกรณ์ 24 ชั่วโมง
Antoine Meltzheim

คำตอบ:


275

คุณสามารถรับผลลัพธ์ที่ต้องการได้ด้วยรหัสด้านล่าง Two'H 'in HHสำหรับรูปแบบ 24 ชั่วโมง

return fechaHora.Value.ToString("HH:mm");

8
คำอธิบายว่าทำไมงานนี้ถึงมีประโยชน์ เช่น HH สำหรับรูปแบบ 24 ชั่วโมงเช่น hh เป็นเวลา 12 ชั่วโมง
Luke Alderton


19

การใช้งานToString("HH:mm")จะให้สิ่งที่คุณต้องการเป็นสตริงอย่างแน่นอน

หากคุณต้องการจำนวนชั่วโมง / นาทีปัจจุบันเป็นตัวเลขการจัดการสตริงไม่จำเป็น คุณสามารถใช้TimeOfDayคุณสมบัติ:

TimeSpan timeOfDay = fechaHora.TimeOfDay;
int hour = timeOfDay.Hours;
int minute = timeOfDay.Minutes;

ฉันชอบวิธีนี้เพราะมันให้ค่าจำนวนเต็มสำหรับการคำนวณ
Hao Nguyen

นี่คือทางออกที่ต้องการสำหรับฉันเพราะฉันต้องการ int จากชั่วโมงของวัน ง่ายกว่ามากแล้วแปลงเป็นสตริงเพียงเพื่อแยกกลับเป็น DateTime อีกครั้ง
Sev

6

ลองสิ่งนี้:

//String.Format("{0:HH:mm}", dt);  // where dt is a DateTime variable

public static string FormatearHoraA24(DateTime? fechaHora)
{
    if (!fechaHora.HasValue)
        return "";

    return retornar = String.Format("{0:HH:mm}", (DateTime)fechaHora);
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.