Как получить сегодняшнюю дату на 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;
}

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

ljs
источник
13
DateTime.Now.ToString("dd/MM/yyyy");
Корин Блейки
источник
8
string today = DateTime.Today.ToString("M/d");
Билли Джо
источник
8
DateTime.Now.Date.ToShortDateString()

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

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

DateTime.Now.ToString("d/MM/yyyy");
Корин Блейки
источник
5
DateTime.Now.Date.ToShortDateString()

Я думаю это то что ты ищешь

Джош Майн
источник
3

Или без года:

DateTime.Now.ToString("M/dd")
EBGreen
источник