ฉันจะรับวันที่ของวันนี้ในรูปแบบ C # ในรูปแบบ mm / dd / yyyy ได้อย่างไร


106

ฉันจะรับวันที่ของวันนี้ในรูปแบบ C # ในรูปแบบ mm / dd / yyyy ได้อย่างไร

ฉันต้องการตั้งค่าตัวแปรสตริงเป็นวันที่ของวันนี้ (โดยเฉพาะอย่างยิ่งไม่มีปี) แต่ต้องมีวิธีที่ดีกว่าการสร้างเป็นเดือน - / - วันทีละชิ้น

BTW: ฉันอยู่ในสหรัฐอเมริกาดังนั้น M / dd จะถูกต้องเช่นวันที่ 11 กันยายนคือ 9/11

หมายเหตุ: มีคำตอบจาก kronoz ที่กล่าวถึงความเป็นสากลและฉันคิดว่ามันยอดเยี่ยมมากพอที่จะพูดถึงเพราะฉันไม่สามารถทำให้มันเป็นคำตอบที่ 'ยอมรับ' ได้เช่นกัน

คำตอบของ kronoz


4
M / dd จะแสดง 1 มกราคมเป็น 1/01 คุณต้องการ 1/01 หรือแค่ 1/1?
Joel Coehoorn

คำตอบ:



23

อย่าอวดดีอย่างน่าสยดสยอง แต่ถ้าคุณกำลังทำให้รหัสเป็นสากลอาจเป็นประโยชน์มากกว่าที่จะมีสิ่งอำนวยความสะดวกในการหาวันที่สั้น ๆ สำหรับวัฒนธรรมที่กำหนดเช่น: -

using System.Globalization;
using System.Threading;

...

var currentCulture = Thread.CurrentThread.CurrentCulture;
try {
  Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-us");
  string shortDateString = DateTime.Now.ToShortDateString();
  // Do something with shortDateString...
} finally {
  Thread.CurrentThread.CurrentCulture = currentCulture;
}

แม้ว่าจะเห็นได้ชัดว่าแนวทาง "m / dd / yyyy" นั้นดีกว่ามาก !!





8
DateTime.Now.Date.ToShortDateString()

เป็นวัฒนธรรมเฉพาะ

ที่ดีที่สุดคือยึดติดกับ:

DateTime.Now.ToString("d/MM/yyyy");


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.