настройки все даты на английском языке, но в формате, специфичном для страны

Я ищу способ установить формат даты в mm/dd/yyyy или dd/mm/yyyy . Настройка культуры для моих страниц на основе ip устанавливает язык календаря asp.net на местном языке. Например: он отлично работает для США, Австралии, Великобритании. Но для таких стран, как Саудовская Аравия, я хочу, чтобы мой календарь по-прежнему был на английском, а не на местном языке, таком как арабский.

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

Пожалуйста, взгляните на код.

P.S. Этот код отлично работает для Индии, где у них есть "en" как TwoLetterISOLanguageName. Но потом я понял, что не во всех странах есть «en».

private static CultureInfo GetCultureInfo(UserSession currentUserSession, string userHostAddress)
        {
            try
            {
                string location = null;

                // use logged in user's configured location
                if (currentUserSession != null)
                {
                    location = currentUserSession.LocationString;
                }

                // fall back to IP address
                if (string.IsNullOrEmpty(location))
                {
                    string code = IPToCountry.GetCountry(userHostAddress);

                    if (code != null)
                    {
                        location = Config.Users.GetCountryByCode(code);
                    }
                }

                // find english culture for country, if it exists
                if (!string.IsNullOrEmpty(location))
                {
                    foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
                    {
                        try
                        {
                            if (ci.TwoLetterISOLanguageName == "en")
                            {
                                RegionInfo ri = new RegionInfo(ci.LCID);
                                if (location.Contains(ri.EnglishName))
                                    return ci;
                            }
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
            }
            catch (Exception)
            {
            }

            return null;
        }

person vishnu    schedule 05.01.2012    source источник


Ответы (1)


Я не уверен, что правильно понял ваш вопрос, но вы можете явно указать формат дат в культуре.

Обратите внимание, что вам нужно клонировать CultureInfo, прежде чем вы сможете установить свойство DateTimeFormat.

person Paolo Tedesco    schedule 05.01.2012
comment
Thread.CurrentThread.CurrentCulture.DateTimeFormat КАЖЕТСЯ ТОЛЬКО ДЛЯ ЧТЕНИЯ. - person vishnu; 05.01.2012
comment
Вы прекрасно поняли мой вопрос. Я хотел бы увидеть, как я могу установить DateTimeFormat моей страницы. - person vishnu; 05.01.2012
comment
Удивительно. Большое спасибо за это слова. Я понятия не имел, что есть способ сделать это. - person vishnu; 05.01.2012
comment
Мои календарные месяцы использовали CurrentInfo.GetMonthName(month), month.ToString())); Следовательно, мне пришлось просто установить DateTimeFormat.ShortDatePattern, LongDatePattern, ShortTimePattern, LongTimePattern, а не весь DateTieFormat. - person vishnu; 05.01.2012
comment
@vishnu: Я только что увидел ваши комментарии, похоже, вы тем временем поняли, как это сделать :) - person Paolo Tedesco; 05.01.2012