CultureInfo로 모든 언어의
DateFormat, TimeFormat 알아내기
Exchange에 타임존과 언어설정시 TimeFormat와 DateFormat 설정을 같이 해줘야 세팅이 되기 때문에 검색을 하였으나 구글리에서는 검색이 되지 않아 직접 파워쉘로 언어별로 세팅된 정보를 알아내 진행하다가 같이 프로젝트 하시는 이사님이 아래 코드를 보내 주셨다.
// 언어 리스트 가져오기 CultureInfo[] cinfo = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures); // 언어 리스트 foreach (CultureInfo cul in cinfo) { Console.WriteLine("Language={0}", cul.Name); Console.WriteLine("DateFormat={0}", cul.DateTimeFormat.ShortDatePattern); Console.WriteLine("TimeFormat={0}", cul.DateTimeFormat.ShortTimePattern); Console.WriteLine("----------------------"); }
[코드1] 모든 언어 객체를 가져와 DataFormate, TimeFormate 뿌려주기
이 코드를 실행하면 아래와 같이 결과가 나온다.
Language=chr-Cher
DateFormat=M/d/yyyy
TimeFormat=h:mm tt
----------------------
Language=iu-Latn
DateFormat=d/MM/yyyy
TimeFormat=h:mm tt
----------------------
Language=tzm-Latn
DateFormat=dd-MM-yyyy
TimeFormat=H:mm
----------------------
Language=ff-Latn
DateFormat=dd/MM/yyyy
TimeFormat=HH:mm
----------------------
Language=ha-Latn
DateFormat=d/M/yyyy
TimeFormat=h:mm tt
----------------------
Language=ku-Arab
DateFormat=yyyy/MM/dd
TimeFormat=hh:mm tt
----------------------
[표1] 결과 화면
이제 여기서 얻은 값으로 아래의 코드를 통해서 Exchange 2013에서 사용자의 타임존과 언어 설정을 할 수 있게 되었다.
// 파워쉘로 사용자 언어 설정 변경 using (var powershell = Injector.Current.GetInstance<IPowerShellWrapper>()) { var results = powershell.PipelineInvoke("Set-MailboxRegionalConfiguration", new Dictionary<string, object>() { { "Identity", ui.UserId }, { "Language", ui.Language }, { "TimeFormat", ui.TimeFormat }, { "DateFormat", ui.DateFormat } }); result.ResultState = true; }
[코드2] Exchange 2013에서 파워쉘로 타임존과 언어설정 코드
'.Net Framework' 카테고리의 다른 글
[Mono][ASP.NET] Nancy Framework - .Net, Mono 지원하는 Restful 서비스 개발 지원 (0) | 2013.06.05 |
---|---|
[Mono] Monodevelop - Windows, Linux, Mac 응용 프로그램 개발 지원 IDE (0) | 2013.06.05 |
[C# Code Snippet] Enum을 String에서 변환 하기 - Enum Convert (1) | 2013.05.30 |
Zen Coding Visual Studio Plugin (0) | 2013.05.18 |
[Unit Test] 테스트 모드를 64비트에서 테스트 - 64bit COM+ 테스트시 주의 (0) | 2013.05.14 |