Jak uzyskać dzisiejszą datę w C # w formacie mm / dd / rrrr?

105

Jak uzyskać dzisiejszą datę w C # w formacie mm / dd / rrrr?

Muszę ustawić zmienną łańcuchową na dzisiejszą datę (najlepiej bez roku), ale musi być lepszy sposób niż budowanie tego miesiąca - / - dnia po jednym kawałku na raz.

BTW: Jestem w USA, więc M / DD byłoby poprawne, np. 11 września to 9/11.

Uwaga: nadeszła odpowiedź od firmy Kronoz, która dotyczyła internacjonalizacji i pomyślałem, że jest wystarczająco fajna, aby o niej wspomnieć, ponieważ nie mogę również uznać jej za akceptowaną.

odpowiedź Kronoza

Keng
źródło
4
M / dd pokaże 1 stycznia jako 1/01. Chcesz 1/01 czy tylko 1/1?
Joel Coehoorn

Odpowiedzi:

23

Nie żeby być okropnie pedantycznym, ale jeśli internacjonalizujesz kod, może być bardziej przydatne, aby mieć możliwość uzyskania krótkiej daty dla danej kultury, np .: -

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;
}

Chociaż wyraźnie podejście „dd / dd / rrrr” jest znacznie schludniejsze !!

ljs
źródło
13
DateTime.Now.ToString("dd/MM/yyyy");
Corin Blaikie
źródło
8
string today = DateTime.Today.ToString("M/d");
Billy Jo
źródło
8
DateTime.Now.Date.ToShortDateString()

zależy od kultury.

Najlepiej trzymać się:

DateTime.Now.ToString("d/MM/yyyy");
Corin Blaikie
źródło
5
DateTime.Now.Date.ToShortDateString()

Myślę, że właśnie tego szukasz

Josh Mein
źródło
3

Lub bez roku:

DateTime.Now.ToString("M/dd")
EBGreen
źródło