Как установить формат DateTime
централизованно, так что в любое время, если я использую DateTime.ToString()
в моем коде я получаю строку в формате ISO (например: 2008-2-19 01:00:00
) или (2008-2-19
)Настройка формата DateTime.ToString() централизованно
ответ
Вы должны использовать CultureInfo для управления форматом при использовании DateTime.ToString()
После того, как вы установили CurrentCulture на вашем Current Thread попробуйте следующее:
DateTimeFormatInfo format = Thread.CurrentThread.CurrentCulture.DateTimeFormat;
string dateTime = DateTime.Now.ToString(format.FullDateTimePattern);
Вы можете добавить формат времени в качестве параметра в ToString, я всегда использую это для справки
Dim d = DateTime.Parse("2008-2-19 01:00:00")
Assert.AreEqual("2008-2-19 01:00:00", d.ToString("yyyy-M-dd HH:mm:ss"))
http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
с уважением
Iain
Вы можете использовать методы расширения расширять datetime и создавать TOISOString().
проверить http://msdn.microsoft.com/en-us/library/bb383977.aspx о способах его достижения. В методе расширения вы можете использовать параметры для форматирования строки так, как вам нужно, тогда вы можете использовать DateTime.ToISOString(); Вы также можете использовать культуинфо, как сказал Барри, но я не знаю, соответствует ли оно вашим потребностям.
Расширение с другим именем не поможет ... Мне нужно, чтобы это было сделано в dateTime.ToString ... Это так, что когда datatable анализируется на текст/Json/Xml. Я хочу, чтобы формат был выведен в вышеупомянутом формате. – Mulki
Необходимо обновить свойство System.Threading.Thread.CurrentThread.CurrentCulture
.
Это влияет на все DateTime.ToString()
в текущей теме.
Im, устанавливающий как текущую культуру, так и еду в соответствии с тем, который указан в правлении ... Культура устанавливается вместе с форматом даты .. но dateTimeObj.ToString() продолжает показывать его в формате en-us ... это что-то иначе нужно было сделать иначе, чем просто установить культуру? – Mulki
С помощью ответов Альбина и Барри iv получил следующий код, чтобы установить формат времени по центру в Global.asax.
using System.Globalization;
using System.Threading;
protected void Application_BeginRequest()
{
CultureInfo standardizedCulture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
standardizedCulture.DateTimeFormat.DateSeparator = "-";
standardizedCulture.DateTimeFormat.LongDatePattern = "yyyy-MM-dd hh:mm:ss";
standardizedCulture.DateTimeFormat.FullDateTimePattern = "yyyy-MM-dd hh:mm:ss";
standardizedCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
Thread.CurrentThread.CurrentCulture = standardizedCulture;
Thread.CurrentThread.CurrentUICulture = standardizedCulture;
}
Я считаю, что LongDatePattern = "s"; или "o"; также будет выполнять эту работу. –
Идеи, полученные из 1) http://www.hanselman.com/blog/EnablingEvilOverridingSystemDateTimesDefaultToString.aspx 2) http://channel9.msdn.com/forums/TechOff/125490-ISO-8601-date-formats-in- ASPNET/ – Mulki
Я думаю, что запрашиваемый формат т.е. DateTIme.Now.ToString()
будет иметь очень плохое влияние на ваш читаемость кода (и ремонтопригодность ..). Попытка переопределить хорошо известное поведение с пользовательским - это плохая практика.
Что я сделать считать хорошим способом использовать это так: DateTIme.Now.ToString(IsDefaultFormat)
.
Теперь все, что вам нужно сделать, это добавить метод расширения для DateTime
который принимает bool
, и если это Ьоо установлено значение истинно, возвращает DateTime
с помощью «формат по умолчанию»
Это для веб-службы, которую я разрабатываю. Мне нужно, чтобы формат по умолчанию был переопределен, чтобы быть уверенным, что я не отправлял его в каком-либо формате, а в единый стандартный однозначный формат. Кроме того, язык по умолчанию устанавливает формат даты в США, который очень запутан для меня, так как en-GB следует здесь всей командой разработчиков. – Mulki
- 1. DateTime.ToString ('o') в JavaScript
- 2. Является ли выражение формата DateTime.ToString затронутым текущим языком?
- 3. DateTime.ToString issue
- 4. DateTime.ToString форматы
- 5. Как исключить секунды из DateTime.ToString()
- 6. Почему DateTime.ToString ("h") вызывает исключение?
- 7. Настройка динамического выходного формата
- 8. C Настройка формата программирования
- 9. Настройка формата JSON link
- 10. NPOI настройка формата ячейки
- 11. Настройка формата автозаполнения
- 12. Хранение соединений odbc централизованно
- 13. странно DateTime.ToString поведение
- 14. DateTime.ToString() не конвертирует время
- 15. DotNet DateTime.ToString странные результаты
- 16. datetime.tostring issue in vb.net
- 17. Настройка формата пользовательского элемента управления
- 18. Настройка формата Windows Phone App
- 19. Почему DateTime.ToString(), кажется, игнорирует текущую культуру потока?
- 20. DateTime.ToString месяц и день языка
- 21. C# Generic DateTime.ToString() с пользовательским форматом
- 22. DateTime.ToString может возвращать разные результаты для одного и того же спецификатора формата
- 23. Настройка формата раскрывающегося меню на сайте wordpress
- 24. Настройка формата отладочной печати с помощью PyDev
- 25. Настройка формата даты по умолчанию для datepicker?
- 26. Настройка мобильного формата печати в мобильном приложении
- 27. Jquery date picker - настройка выбранного формата даты
- 28. Настройка стандартного формата даты/времени в Rails
- 29. Настройка формата vAxis в графической линейке Google
- 30. Настройка динамического формата даты в Elastic Search
System.Threading.Thread.CurrentThread.CurrentCulture (и .CurrentUICulture). –
Культура устанавливается, но формат dateTime не изменяется. Проверьте править выше – Mulki
@Mulki - Я отредактировал свой ответ. Спасибо – codingbadger