2014-05-09 5 views
0

잘못된 시간대 받고 (5 월 1 일 2014 동부 표준시 시간대에서 오후 9시 45분) :C# DateTime.TryParseExact 좀 시간대 정보가 포함 된 날짜 시간 문자열 구문 분석하려고 해요

DateTime RecordedDateTime; 
string fixedRecordedDateTime = "Thu May 01 21:45:00 +0500 2014"; 
string[] dateFormats = { "ddd MMM dd HH:mm:ss zzz yyyy" , "ddd MMM dd HH:mm:ss K yyyy" }; 
DateTime.TryParseExact(fixedRecordedDateTime, dateFormats, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out RecordedDateTime); 

날짜 시간 객체가 5를 가져옵니다/1/2014 오후 12시 45분 현지 시간 (나는 EST에있어)

내가 사용하는 경우 (5 월 1 일 2014 PST 시간대에서 오후 9시 45분) :

string fixedRecordedDateTime = "Thu May 01 21:45:00 +0800 2014"; 

날짜 시간 객체가 5/1를 가져옵니다/2014 09:45 AM 현지 시각

나는 무엇이 잘못되었는지 이해하지 못한다. 왜 나는 시간대 정보를 제공 한 후 현지 시간을 정정 할 수 없다.

DateTimeOffset 대신 DateTime을 사용하려고하는데, 어쨌든 올바르게 구문 분석 할 수 있습니까?

+3

EST는 GMT-5입니다. PST는 GMT-8입니다. GMT + 5는 인도 파키스탄, GMT + 8은 중국입니다. –

+1

부수적으로 [노다 시간] (http://nodatime.org/)을 확인하십시오. – Icemanind

+0

@AntonTykhyy GMT + 5.30은 GMT + 5가 아닙니다. –

답변

2

string fixedRecordedDateTime = "Thu May 01 21:45:00 +0500 2014";

이 UTC + 0500에서 21시 45분입니다. 그것은 UTC에서 16:45, 또는 EDT (UTC-0400)에서 12:45가됩니다. 나는 당신이 당신의 +와 - 오프셋을 가지고 있다고 생각합니다.

+0

감사합니다.이 게시물도 수정해야한다고 생각합니다. EST PST 등을 페이지의 코드를 사용하여 숫자로 변환했습니다. – rboy

+0

http://stackoverflow.com/questions/13881819/c-sharp-tryparseexact-reading-time-zone – rboy