Unix 时间表示方式与windows时间表示方式相互转换的解决办法

时间:2024-03-04 10:45:35

Unix时间时间表示方式与windows时间表示方式相互转换的解决办法。

 

简单描述问题:(以上问题仅限在VC++6.0或更低的开发环境下实现。当然VS2005,VS2008中可能有更好的解决办法,但是我使用开发环境有局限。)

1.怎么把从1970年1月1日00:00:00的现在的系统时间的经历的秒数计算出来存放到一个变量里(比如long类型)。

2.怎么把一个变量里(比如long类型)存的毫秒数折合成相对于1970年1月1日00:00:00的一个SYSTEMTIME类型的变量里。

 

 

都是换算成以1970年1月1日为开始时间的相对秒数。

a.下行换算,用time函数能直接得到从1970年1月1日的累计毫秒数。

b.上行折算,则相对要复杂一些。首先要mktime函数计算出总的秒数;其次,再把mktime函数计算出的time_t类型时间转化为SYSTEMTIME格式的时间。

 

以上解决方案,是我摸索出的认为比较合理的解决办法。相关内容参考自MSDN上的三篇文档:http://support.microsoft.com/kb/167296和http://msdn.microsoft.com/en-us/library/1f4c8f33(VS.80).aspx和http://msdn.microsoft.com/en-us/library/aa246472(VS.60).aspx。。