2012-01-05 1 views
0

날짜 형식을 mm/dd/yyyy 또는 dd/mm/yyyy로 설정하는 방법을 찾고 있습니다. ip 기반의 내 페이지에 대한 culture를 설정하면 asp.net 달력의 언어가 현지 언어로 설정됩니다. 예 : 미국, 호주, 영국에서는 정상적으로 작동합니다. 그러나 사우디 아라비아 같은 나라의 경우, 아랍어 같은 현지 언어가 아닌 영어로 된 달력을 원합니다.모든 날짜가 영어로 설정되어 있지만 국가 고유의 형식

기본적으로 내 달력은 영어로되어 있지만 올바른 형식으로되어 있어야합니다.

코드를 살펴보십시오.

P.S., 이 코드는 TwoLetterISOLanguageName이 "en"인 인도에서 잘 작동합니다. 그러나 모든 국가가 "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; 
     } 

답변

2

정확하게 질문을 이해할 수 있는지 확실하지 않지만 명시 적으로 format for dates in a culture을 설정할 수 있습니다.

DateTimeFormat 속성을 설정하려면 먼저 CultureInfo을 복제해야합니다.

+0

Thread.CurrentThread.CurrentCulture.DateTimeFormat READONLY로 표시됩니다. – vishnu

+0

내 질문을 잘 이해했습니다. 내 페이지의 DateTimeFormat을 설정할 수있는 방법을보고 싶습니다. – vishnu

+0

Amazing.Thanks 많이 그 단어. 나는 그것을 할 수있는 방법이 있다는 단서가 없었습니다. – vishnu

관련 문제