2012-09-07 5 views
0

컴퓨터 시간 형식이 12h 또는 24h인지 테스트하는 기능을 만들려고합니다. 현재이 기능을 가지고 있습니다 :컴퓨터 날짜 시간 형식 테스트

string format = DateTime.Now.ToString("tt"); 

if (format == "AM" || format == "PM") 
{ 
    //12h 
} 
else 
{ 
    //24h 
} 

그러나이 기능에는 문제가 있습니다. 형식을 12h으로 변경하고 처음으로 앱을 실행하면 형식이 24h (이전)임을 알 수 있습니다. 그리고 다시 실행하면 형식이 12h 인 것을 알 수 있습니다. 문제는 앱이 두 번째 실행 후에 정확한 답변을 알려주는 것입니다. 두 번째 테스트가 아닌 주먹 테스트에서 올바르게 테스트 할 기능이 필요합니다.

이 기능은 양식로드 테스트를 위해 Form1_Load에 있습니다.

+0

당신은 문화의 설정의 확실하지 않다, 그리고 아직 당신은 AM과 PM이 유일하게 가능한 12 시간 지정자임을 확신 ? 이 테스트의 * 결과 *로 무엇을 할 것인가? 프로그램이 얼마나 다르게 작동 하는가? 아마도 우리는 더 나은 전반적인 솔루션을 제안 할 수 있습니다 ... –

+0

내 설정 (it-IT)에 따라서 'tt'가 없으므로 형식 문자열이 비어 있습니다. – Steve

+0

라벨에서 이것을 시험해보고, 12h 형식이 켜져 있으면 오전이나 오후를 표시하지만 24 시간 형식이 켜져 있으면 아무 것도 표시하지 않습니다! – AnDr3yy

답변

0

CultureInfo는 24 시간 부울을 지원해야하지만 그렇지 않은 경우입니다. 시스템이 오전/오후 기호 표시되는 경우이 당신을 말할 것이다 :

bool is12hr = CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern.Contains("t"); 
+0

12h 형식이 켜져 있으면 true를 표시하고 그렇지 않으면 false를 표시합니다. 그러나 그것은 단지 두 번째 실행 후에 작동합니다. 내 기능처럼! 레이블에 결과를 표시합니다! – AnDr3yy

+0

이것은 나에게 조금 위험한 것처럼 보입니다. 한 글자 "t"만 찾는 이유와 이것이 왜 충분한 지 설명해야합니다. – nalply