Как я могу отформатировать дату как dd/mm/yyyy
или mm/dd/yy
?
Как в VB format("dd/mm/yy",now)
Как это сделать на С#?
Как я могу отформатировать дату как dd/mm/yyyy
или mm/dd/yy
?
Как в VB format("dd/mm/yy",now)
Как это сделать на С#?
Это почти то же самое, просто используйте метод DateTime.ToString()
, например:
DateTime.Now.ToString("dd/MM/yy");
Или:
DateTime dt = GetDate(); // GetDate() returns some date
dt.ToString("dd/MM/yy");
Кроме того, вам может потребоваться использовать один из предопределенных форматов даты и времени, например:
DateTime.Now.ToString("g");
// returns "02/01/2009 9:07 PM" for en-US
// or "01.02.2009 21:07" for de-CH
Это гарантирует, что формат будет правильным, независимо от текущих настроек локали.
Для получения дополнительной информации просмотрите следующие страницы MSDN.
Дополнительная дополнительная информация:
Если вы хотите отображать дату в определенной языковой версии/культуре, то существует перегрузка метода ToString()
, который принимает значение IFormatProvider
:
DateTime dt = GetDate();
dt.ToString("g", new CultureInfo("en-US")); // returns "5/26/2009 10:39 PM"
dt.ToString("g", new CultureInfo("de-CH")); // returns "26.05.2009 22:39"
Или, альтернативно, вы можете установить CultureInfo
текущего потока до форматирования даты:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
dt.ToString("g"); // returns "5/26/2009 10:39 PM"
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-CH");
dt.ToString("g"); // returns "26.05.2009 22:39"
string.Format("{0:dd/MM/yyyy}", DateTime.Now)
Посмотрите "строки формата" в MSDN, чтобы просмотреть все параметры форматирования.
Используйте yy
, yyyy
, M
, MM
, MMM
, MMMM
, d
, dd
, ddd
, dddd
для компонента даты
Используйте h
, hh
, h
, hh
, M
, MM
, s
, ss
для компонента time-of-day
Попробуйте следующее:
String.Format("{0:MM/dd/yyyy}", DateTime.Now); // 01/31/2009
String.Format("{0:dd/MM/yyyy}", DateTime.Now); // 31/01/2009
String.Format("{dd/MM/yyyy}", DateTime.Now); // 31/01/2009
В вы также можете написать
DateTime aDate = new DateTime();
string s = aDate.ToShortDateString();
для короткой записи
или
DateTime aDate = new DateTime();
string s = aDate.ToLongDateString();
для длинной записи, например "Sunday, Feb.1, 2009".
Или посмотрите MSDN на возможности .ToString( "???" );
Еще лучше, используйте только
DateTime.Now.ToString()
или
DateTime.Now.ToString(CultureInfo.CurrentCulture)
использовать формат, который пользователь предпочитает.
Я столкнулся с той же проблемой. Мне нужно было добавить ссылку вверху класса и изменить CultureInfo текущего потока, который выполняется.
using System.Threading;
string cultureName = "fr-CA";
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
DateTime theDate = new DateTime(2015, 11, 06);
theDate.ToString("g");
Console.WriteLine(theDate);
Все, что вам нужно сделать, это изменить название культуры, например: "en-US" = Соединенные Штаты "fr-FR" = франкоязычная Франция "fr-CA" = франкоязычная Канада и т.д...
Я думаю, что это просто, потому что вы можете конвертировать в любой формат без каких-либо путаниц.
DateTime.ParseExact(txt.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy/MM/dd"));