настройки все даты на английском языке, но с форматом конкретной страны - PullRequest
0 голосов
/ 05 января 2012

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

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

Пожалуйста, посмотрите на код.

PS, этот код отлично работает для Индии, гдеу них есть "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;
        }

1 Ответ

2 голосов
/ 05 января 2012

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

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

...