mrtg文件中的日期和时间是一个10位的字符串 例如 1278928744 1278928444
简单研究了一下,这应该是从1970年1与人1日0时到当前的所有秒数,至于这个时间点可以计算出来,计算过程也是大数据的一系列运算,但是运算量比较大,不知道有没有好点的方法,或者有直接转换的函数,我想在c#里使用附,我分析的10位字符串计算方法
x=[365*(year-1970)+(year-1968)/4+m[1]+m[2]+...+m[month-1]+date]*24*3600 + hour*3600 + minutes*60 + seconds其中 m代表当年每个月的天数
根据这个公式2010年7月12日18点24分20秒计算先来是
x=[365*(2010-1970)+(2010-1968)/4+31+28+31+30+31+30+11]*24*3600 + 18*3600 + 24*60 + 20
 =1278892800+64800+1440+20
 =1278959060
我的笨计算方法
利用以上公式从秒逐步取余和做除法反向计算

解决方案 »

  1.   

    int n = 1278928744;
    TimeSpan ts = new TimeSpan(0, 0, 0, 0, n);
    Console.WriteLine(ts.ToString());            
      

  2.   


    我试试,请问timespan在什么命名空间?
      

  3.   

    baidu了一下,见的timespan都是计算时间差的,就是相当于我所拥有的x,也就是4楼定义的n啊
     
      public TimeSpan(int hours, int minutes, int seconds);
      

  4.   

    本帖最后由 lxcnn 于 2010-07-12 22:17:57 编辑
      

  5.   

    从楼主的例子看,楼主取的是UTC时间,如果要取当地时间,比如中国的东八区时间,把.ToUniversalTime()去掉
      

  6.   

    受到4楼TimeSpan的启发有一个简单的解决办法了int n=1278928744; //定义int变量存储10位字串
    DateTime StartDate=new DateTime(1970,1,1,0,0,0); //定义起点日期时间点
    TimeSpan theTimeSpan=new TimeSpan(0,0,0,n);       
    //构造TimeSpan,4个参数分别是days,hours,minuts,seconds
    DateTime SumDate=StartDate + theTimeSpan; //直接相加计算日期时间
    Console.WriteLine(SumDate.Tostring());