2013-07-24 2 views
1

Я разрабатываю веб-сайт ASP.NET C# Webforms с MySQL в качестве даты поставки базы данных в своем стандартном формате даты.Global.asax.cs Пользовательское форматирование даты на всем сайте

Как я могу добавить пользовательский формат для Global.asax.cs даты файл как последуйте (нерабочий код):

using System.Globalization; 
    using System.Threading; 

    protected void Application_BeginRequest(Object sender, EventArgs e) 
    {  
     CultureInfo newCulture = (CultureInfo) System.Threading.Thread.CurrentThread.CurrentCulture.Clone(); 

     //Will make all dates of the format similar to 3/14/13 12:9 AM/PM 
     newCulture.DateTimeFormat = "M/d/yy h:m tt"; 

     Thread.CurrentThread.CurrentCulture = newCulture; 
    } 

Спасибо за любой вклад.

ответ

0

Недвижимость DateTimeFormat является на самом деле объектом типа DateTimeFormatInfo с большим количеством разных свойств. Попробуйте это:

CultureInfo newCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); 
newCulture.DateTimeFormat.ShortDatePattern = "M/d/yy"; 
newCulture.DateTimeFormat.ShortTimePattern = "h:m tt"; 
newCulture.DateTimeFormat.LongDatePattern = "M/d/yy"; 
newCulture.DateTimeFormat.LongTimePattern = "h:m tt"; 
Thread.CurrentThread.CurrentCulture = newCulture; 

Теперь, если вы просто сделать что-то вроде этого в коде ASP.Net:

<%= DateTime.Now %> 

Он должен забрать на формате от вашей культуры. Конечно, его можно было бы легко переопределить:

<%= DateTime.Now.ToString("ss:mm:HH dd/MM/yyyy") %> // backwards! 

Вы не можете ничего сделать, чтобы этого не было. Все, что вы можете сделать, это изменить настройки по умолчанию.

Короткие и длинные узоры, вероятно, единственные, которые вам нужно изменить. По умолчанию (общий) шаблон построен из них.

+0

Почему вам нужно вызывать 'CurrentCulture.Clone()' вместо того, чтобы просто использовать 'CurrentCulture.DateTimeFormat.ShortDatePattern =" "' и т. Д.? – Sinjai

Смежные вопросы