客户让我看数据库里面的一个时间列(列名叫LastModified)。里面的数据如下:
   LastModified
40277.505119292527440277.505125079566240277.505130866611客户对我说这是时间的数字表式形式(实际上他也不太肯定),他想把这些数字转化成对应的时间。
这个有统一的转换方法么?
希望高手指点。万分感激!!!

解决方案 »

  1.   


    string timeStamp = "1191030513613";
    DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
    long lTime = long.Parse(timeStamp + "0000");  
    TimeSpan toNow = new TimeSpan(lTime);
    DateTime dtResult = dtStart.Add(toNow);
    Response.Write("值:" + dtResult);
    Response.End();
      

  2.   


            /// <summary>
            /// 将Unix时间戳转换为DateTime类型时间
             /// </summary>
            /// <param name="d">double 型数字</param>
            /// <returns>DateTime</returns>
            public static System.DateTime ConvertIntDateTime(double d)
            {
                System.DateTime time = System.DateTime.MinValue;
                System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
                time = startTime.AddSeconds(d);
                return time;
            }
      

  3.   

    UNIX时间戳,貌似是10位,不知道你的这些数字是不是有效格式。
      

  4.   

    1.将时间戳转换成一串32比特的二进制数,不够补0;
    2.根据下面格式转换各个字段为10进制数字
    YYYY YYYM MMMD DDDD HHHH HMMM MMMS SSSS
    Y = year(年这一字段从1980开始计算,加上1980)
    M = month
    D = day
    H = hour
    M = minutes
    s = seconds自己先用计算器试试- -如:481522543最终转换成:1994/05/19 14:27:30
      

  5.   

    时间戳是自1970年1月1日(00:00:00 UTC/GMT)以来的秒数。
    误人了,多谢非哥提醒。
      

  6.   

    这是古老的ADO的adDate类型存储格式...如果我没记错的话...数字的整数部分是从1899年12月30日算起的天数,小数部分是当天经过时间刻度...用SQL语句应该能转换,自己试一下吧,太多年没用过了...
      

  7.   

    唉...果然记错了,是从1899年12月31日算起的天数,即1900-1-1 00:00:00起始....NET中称为OAData...
    DateTime dd = DateTime.FromOADate(40277.5051192925274);//2010-4-9 12:07:22
      

  8.   

    http://topic.csdn.net/t/20030323/13/1565539.html#
    靠谱么? 我也是datagridview显示
      

  9.   

    .NET中称为OAData => .NET中称为OADate老了,一错再错...
      

  10.   

    不是没可能...那个OADate是我推测的,因为看结果蛮符合,哈...看来我还是得用SQL语句转换下看看到底哪个对...人老了,太久远的东西记不清晰了...
      

  11.   

    这数据库是很老了 是sqlanywhere中的数据
      

  12.   

    两个结果不一样...看来不是我记忆的问题,是OADate和adDate的存储结构略有不同...OADate是从1899年12月30日起始的...
    DateTime dd = DateTime.FromOADate(40277.5051192925274);//2010-4-9 12:07:22
    adDate是从1900年1月1日起始的...
    select cast(40277.5051192925274 as datetime) as dt --2010-04-11 12:07:22.307你还是用SQL吧,至于日期对不对你恐怕得测试一下了...
      

  13.   

    这样的话说明还是OADate,那就不能用SQL语句了...这个SQL转换结果好像有点不太对劲儿...我记得adDate也是从1899年12月30日起始的,难道是SQL Server的问题?得去查查...
      

  14.   


    DateTime dd = DateTime.FromOADate(40277.5051192925274);//2010-4-9 12:07:22这个是正确的日期 我今天中午点击的按钮
      

  15.   

    按照MSDN的解释...OADate就是adDate,叫做OLE自动化日期...看来是SQL Server有问题...
      

  16.   

    php中time()函数得到的值形式:1260424795