2014-04-22 1 views
-1

나는이 예제 줄을 사용하여 C#을 TimeSpan으로 긍정과 부정 배의 혼합을 구문 분석하려고 해요 :TimeSpan.ParseExact 부정적인 시간

TimeSpan.TryParseExact("-4:-41:-4.102276", @"[\-]H\:[\-]m\:[\-]s.ffffff", enUS, out time) 

을 불행하게도이 유용 아무것도 반환하지 않습니다. 그냥 실패하고 설정합니다 time0:0:00

도움말? "부정적"값 항상 각 구성 요소 전에 -이있는 경우

+1

어떻게'-4 : -41''다릅니다 - 4시 41 분'? '-4 : -41'은'-3 : 19'를 의미합니까? –

+2

어떤 맥락에서? 실제로 어떤 문제를 해결하려고합니까? 부정적인 시간대와 같은 것은 없습니다. 시간대는 시간대입니다. 4 분에서 4 분 사이의 차이점은 무엇입니까? –

+0

@AntP 음, '-4 : 41 : 4.102276'은 의미가 있으며 표준 방법을 사용하여 파싱 할 수 없습니다. 그러나 각 부분의 음수 부호는 결코 그것을 보지 못했습니다. –

답변

2

, 당신은 표적을보고 두 개의 서로 다른 형식 문자열 사용할 수 있습니다

TimeSpan ts; 
string s = "-4:-41:-4.102276"; 
if(s.StartsWith("-")) 
    ts = -TimeSpan.ParseExact(s, @"\-h\:\-m\:\-s\.ffffff", enUS); 
else 
    ts = TimeSpan.ParseExact(s, @"h\:m\:s\.ffffff", enUS); 
+0

충분히 간단합니다. 내가 할게요. 감사! – reasra

+0

실수로 두 번째 구문 분석 문에 여분의 이스케이프 문자가 남아 있다고 생각합니다. –

+0

@UlugbekUmirov 나는 수정했다. –