2011-10-27 3 views
3

"20111027"즉 "yyyyMMdd"일반 형식의 문자열이 있습니다.문자열 "20111027"을 GMT의 시간대가있는 DateTime으로 변환

이 항목을 timezone GMT의 DateTime으로 변환하려면 어떻게합니까?

이 코드는 몇 가지 변환을 수행하지만, 사용되는 어떤 시간대 불분명 :

DateTime date = DateTime.ParseExact(dateString, "yyyyMMdd", 
           CultureInfo.InvariantCulture); 

답변

5

사용에게 DateTimeStylesAssumeUniversal의 다음 docs of DateTimeStyles.AssumeUniversal에서

DateTime date = DateTime.ParseExact(dateString, "yyyyMMdd", 
            CultureInfo.InvariantCulture, 
            DateTimeStyles.AssumeUniversal); 

:

어떤 시간대가 지정되지 않은 경우를 ~ 안에 그는 문자열을 구문 분석하고, 문자열은 UTC를 나타내는 것으로 가정합니다.

당신이 (또는 당신이 Noda Time을 사용하고 LocalDate에 구문 분석합니다. 그것은 단지 결국, 날짜를 나타내는, 그래서 왜 시간과에 대한 관심 유형을 사용할 수 있습니다 :

을 정확히 원하는 것 같은데 시간대 :?

5

documentation에서 :

의 특정 시간대과의 시간을 나타내지 않는 경우, 구문 분석 작업이 성공하면 반환 된 DateTime 값의 Kind 속성은 DateTimeKind.Unspecified입니다.

당신은 KindDateTime.SpecifyKind를 사용하여 변경할 수 있습니다

date = DateTime.SpecifyKind(date, DateTimeKind.Utc); 
관련 문제