读书人

C#中如何转换time_t类型的时间

发布时间: 2012-09-05 15:19:34 作者: rapoo

C#中怎么转换time_t类型的时间?
遇到一个问题,要读取文件中的一个字段,该值是一个time_t类型的变量,在C++中表示为如下
time_t tt = 0x46a5af8d; (十进制为1185263501)
cout < <ctime(&tt) < <endl;

输出如下:
Tue Jul 24 15:51:41 2007

现在C#中做如下转换

double tmp = (double)1185263501;

TimeSpan ts = new TimeSpan();
ts = TimeSpan.FromSeconds(tmp);

DateTime dt = new DateTime(1970,1,1,0,0,0);
DateTime now = new DateTime();
now = dt + ts;

Console.WriteLine( "{0} ",now.ToString());

输出如下:
2007-7-24 7:51:41


小时的值有问题,怎么回事?是不是这样转方法有问题?

[解决办法]
时区的问题...估计你那个时间源是UTC时间...加个DateTimeKind参数即可...

DateTime dt = new DateTime (year,month,day,hour,minute,second,DateTimeKind.Utc);

读书人网 >C#

热点推荐