2012-04-24 2 views
7

"2012-04-20 10 : 10 : 00 + 0200"문자열을이 형식의 dateTime으로 포맷하려고합니다. 나는 그것이 "yyyy-MM-dd hh : mm : ss zzz"이어야한다고 생각합니다.시간대가있는 DateTime에 C# 문자열

나는 "V4Vendetta"에 의해 주어진이

// starttime = {20/04/2012 10:10:00} without my +0200! 
DateTime starttime = Convert.ToDateTime("2012-04-20 10:10:00+0200",CultureInfo.CurrentCulture); 
// And this gave me a format exception : {System.FormatException: String was not recognized as a valid DateTime. 
     DateTime result = DateTime.ParseExact("2012-04-20 10:10:00+0200", "yyyy-MM-dd hh:mm:ss zzz", CultureInfo.InvariantCulture); 

해결하려고 할 때 :

을 당신은 (대신 날짜 시간 여기

DateTimeOffset result = DateTimeOffset.Parse("2012-04-20 10:10:00+0200",CultureInfo.InvariantCulture); 

는 오프셋 얻을의 2 시간을하는 DateTimeOffset를 사용하여 시도해야) 또한 DateTime (10:10) 값으로 계산하여 원하는 결과를 얻을 수 있습니다 (result.DateTime + result.Offset)

+1

여기를보십시오 : [link] (http://stackoverflow.com/questions/8754563/parse-string- datetime-containing-timezone-info) – Willem

+1

내 지식에 따라 입력 내용은 "2012-04-20 10 : 10 : 00 + 02 : 00"이어야합니다. – Ramesh

+0

@Schaliasos beter? :) – user1264255

답변

22

당신은 여기 DateTime

DateTimeOffset result = DateTimeOffset.Parse("2012-04-20 10:10:00+0200",CultureInfo.InvariantCulture); 

당신이 Offset (2 시간)을 얻을 대신 DateTimeOffset를 사용하여 시도해야 당신의 0123으로 계산 될 수 너무하는(10:10) 값을 가져오고 원하는 결과를 얻으십시오 (result.DateTime + result.Offset)

+0

고마워! 나는 투표 할 것이지만 나는 아직 할 수 없다. – user1264255

+0

기쁘다! 당신을 도운 * 및 다른 사람들을 격려하는 모든 질문에 대답으로 표시하려고 시도해야합니다. – V4Vendetta

+0

그런 유용한 것! – Keerigan

1

MSDN 문서 here은 찾고있는 것 같습니다. 당은 기사, 당신은 {0:MM/dd/yy H:mm:ss zzz}

1

사용 사용해야 말했다 대신 "2012-04-20 10시 10분 0초 02 00" ""2012-04-20 10 : 10 : 00 + 0200 "

+0

그렇다면 datetime으로 변환했을 때 같은 결과가 나타납니다. . 결과 : // starttime = {20/04/2012 10:10:00} +1200이없는 경우 – user1264255

+0

이미 +02 : 00 시간대 여야합니다. toString ("yyyy-MM-dd hh : mm : ss zzz") –

+0

에 의해 확인하십시오. 맞습니다. 그러나 나는 DateTime에서 그것을 정말로 필요로합니다. V4Vendetta가 올바른 솔루션을 제공했습니다. 그래도 도와 ​​줘서 고마워. – user1264255

0

이 시도 :

DateTime datetime = DateTime.ParseExact("10/10/2009 12:00:00", "MM/dd/yyyy hh:mm:ss", System.Globalization.CultureInfo.CurrentCulture); 
관련 문제