與C++寫的服務通信,傳上來一個time_t格式的時間,我在C#裡面怎麼轉都不對,
值是1259666013,正確的時間應該是2009年12月1日17點13分左右吧,在C++裡面用時間函數轉出來是對的,下面是我的C#轉的方式
double secs = Convert.ToDouble(seconds);
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Unspecified).AddSeconds(secs);
//TimeSpan span = TimeSpan.FromTicks(seconds * TimeSpan.TicksPerSecond);
//DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Local).Add(span);
return dt;// System.TimeZone.CurrentTimeZone.ToLocalTime(dt);
DateTimeKind的三種狀態都試過了,結果都是一樣的
正確的方式應是
time_t是世界時間, 比 本地時間 少8小時(即28800秒), 自己調整一下就行了