2010-07-28 4 views
6

시간대 변수가 있는데 현지 시간대이지만 데이터베이스 (콜드 타입 시간)는 UTC를 전달해야합니다. 어떻게해야합니까? 또한 pageLoad에 Timespan 변수를 채우려면 UTC를 현지 시간으로 가져와야합니다. 감사합니다 !!!timespan 및 UTC

답변

10

DateTime에 TimeSpan을로드 한 다음 DateTime에서 표준시를 가져 와서 다시 변환한다고 가정합니다.

var dt = new DateTime(timeSpan.Ticks); 
var utc = dt.ToUniversalTime(); 
+0

제대로 UTC에 동부 오후 8시을 변환하지 않습니다 다음 새로운 날짜 시간으로 희미한 DT (time.Ticks) \t \t DT = dt.ToUniversalTime() \t \t 희미한 dtUniversal로 새로운 TimeSpan (dt.Ticks) – user228777

+0

아마도 틱이 다른 것을 나타내는 것입니까? 서로 다른 시스템은 다른 진드기 표현을 사용합니다. 일반적으로 밀리 초 계산 시작 날짜입니다. timespan을 년, 월, 일 등의 특정 값으로 변환 할 수있는 경우 해당 값에서 DateTime을 작성한 다음 UTC로 변환 할 수 있습니다. – devios1

+0

제안한대로, 어떻게 datetime을 구축합니까? 데이터베이스에 저장하는 것은 모두시와 기본 분 및 초입니다 (예 : 00). 저장된 값은 01:00:00입니다.이를 어떻게 dateTime으로 변환합니까? - thanks – user228777

3
TimeSpan LocalTimeToUTCTime(TimeSpan localTime) 
{ 
    var dt = new DateTime(localTime.Ticks); 
    var utc = dt.ToUniversalTime(); 
    return new TimeSpan(utc.Ticks); 
} 
2
class TimeConversion 
{ 
    public static TimeSpan LocalTimeSpanToUTC(TimeSpan ts) 
    { 
     DateTime dt = new DateTime(ts.Ticks).AddDays(1); 
     DateTime dtUtc = dt.ToUniversalTime(); 
     TimeSpan tsUtc = dtUtc.TimeOfDay; 

     return tsUtc; 
    } 

    public static TimeSpan UTCTimeSpanToLocal(TimeSpan tsUtc) 
    { 
     DateTime dtUtc = new DateTime(tsUtc.Ticks).AddDays(1); 
     DateTime dt = dtUtc.ToLocalTime(); 
     TimeSpan ts = dt.TimeOfDay; 

     return ts; 
    } 
} 
+1

AddDays (1)의 이유는 무엇인가? – Miles