ง่ายมากโดยใช้รูปแบบสตริง
บน .ToSTring("") :
ถ้าคุณใช้ "hh" - >> ชั่วโมงโดยใช้นาฬิกาแบบ 12 ชั่วโมงตั้งแต่ 01 ถึง 12
ถ้าคุณใช้ "HH" - >> ชั่วโมงโดยใช้นาฬิกา 24 ชั่วโมงจาก 00 ถึง 23
ถ้าคุณเพิ่ม "tt" - >> ตัวกำหนด Am / Pm
ยกตัวอย่างการเปลี่ยนจาก 23:12 เป็น 11:12 Pm:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("hh:mm tt"); // this show 11:12 Pm
var res2 = d.ToString("HH:mm"); // this show 23:12
Console.WriteLine(res);
Console.WriteLine(res2);
Console.Read();
รอสักครู่ที่ไม่ใช่ทั้งหมดที่คุณต้องใส่ใจเกี่ยวกับสิ่งอื่นคือระบบวัฒนธรรมเพราะรหัสเดียวกันที่ดำเนินการบน windows กับภาษาอื่น ๆ โดยเฉพาะกับภาษาที่แตกต่างกันจะสร้างผลลัพธ์ที่แตกต่างด้วยรหัสเดียวกัน
ตัวอย่างหน้าต่างที่ตั้งค่าเป็นวัฒนธรรมการใช้ภาษาอาหรับจะแสดงดังนี้:
// 23:12 م
مหมายถึงค่ำ (leter แรกของمساء)
ในวัฒนธรรมของระบบอื่นขึ้นอยู่กับสิ่งที่ตั้งค่าในตัวเลือกภูมิภาคและภาษาของ windows มันจะแสดง // 23:12 du
คุณสามารถเปลี่ยนรูปแบบที่แตกต่างกันบนแผงควบคุม windows ภายใต้ windows region และ language -> รูปแบบปัจจุบัน (combobox) และ change ... ใช้มันทำการ rebuild (execute) ของแอพของคุณและดูสิ่งที่เอมี่กำลังพูดถึง
ดังนั้นใครสามารถบังคับให้แสดงคำ Am และ Pm ในเหตุการณ์ภาษาอังกฤษหากวัฒนธรรมของระบบปัจจุบันไม่ได้ถูกตั้งค่าเป็นภาษาอังกฤษ
ง่ายเพียงแค่เพิ่มสองบรรทัด: ->
ขั้นตอนแรกจะเพิ่มusing System.Globalization;
ที่ด้านบนของรหัสของคุณ
และแก้ไขรหัสก่อนหน้าให้เป็นดังนี้:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("HH:mm tt", CultureInfo.InvariantCulture); // this show 11:12 Pm
InvariantCulture => ใช้รูปแบบภาษาอังกฤษเริ่มต้น
คำถามอื่นที่ฉันต้องการให้ pm เป็นภาษาอาหรับหรือภาษาที่เฉพาะเจาะจงแม้ว่าฉันใช้ windows ตั้งค่าเป็นรูปแบบภูมิภาคของภาษาอังกฤษ (หรือภาษาอื่น)?
Soution สำหรับตัวอย่างภาษาอาหรับ:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("HH:mm tt", CultureInfo.CreateSpecificCulture("ar-AE"));
สิ่งนี้จะแสดง // 23:12 م
เหตุการณ์หากระบบของฉันถูกตั้งค่าเป็นรูปแบบภูมิภาคของอังกฤษ คุณสามารถเปลี่ยน "ar-AE" หากคุณต้องการรูปแบบภาษาอื่น มีรายการของแต่ละภาษาและรูปแบบของมัน
ตัวอย่าง:
ar ar-SA Arabic
ar-BH ar-BH Arabic (Bahrain)
ar-DZ ar-DZ Arabic (Algeria)
ar-EG ar-EG Arabic (Egypt)
big list...
ทำให้ฉันรู้ว่าคุณมีคำถามอื่น
DateTime
มากกว่านี้ ดูmsdn.microsoft.com/en-us/library/8kb3ddd4.aspx