Как получить сегодняшнюю дату на C # в формате мм / дд / гггг?


105

Как получить сегодняшнюю дату на C # в формате мм / дд / гггг?

Мне нужно установить строковую переменную на сегодняшнюю дату (желательно без года), но должен быть способ лучше, чем строить ее по частям в месяц / день.

Кстати: я нахожусь в США, так что M / dd будет правильным, например, 11 сентября - это 9/11.

Примечание: пришел ответ от kronoz, в котором обсуждалась интернационализация, и я подумал, что это было достаточно круто, чтобы упомянуть, поскольку я также не могу сделать его «принятым» ответом.

Кроноз ответ


4
M / dd покажет 1 января как 1/01. Вы хотите 1/01 или только 1/1?
Джоэл Кохорн,

Ответы:



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

Хотя очевидно, что подход "м / дд / гггг" намного аккуратнее !!





8
DateTime.Now.Date.ToShortDateString()

зависит от культуры.

Лучше всего придерживаться:

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.