Type FILETIME                       '文件系统时间UTC格式  
        dwLowDateTime As Long       '文件系统时间的低字节段  
        dwHighDateTime As Long      '文件系统时间的高字节段  
End Type  
                                    
Debug.Print Format(WFD.ftLastWriteTime.dwHighDateTime)  
结果为  29889516  
问UTC的29889516如何转换yyyy-mm-dd  

解决方案 »

  1.   

    对不起操作失误。
    这个主题应API遍历磁盘的时间问题
    为什么时间定义要有低字节段和高字节段之分。
    Type FILETIME                       '文件系统时间UTC格式   
            dwLowDateTime As Long       '文件系统时间的低字节段   
            dwHighDateTime As Long      '文件系统时间的高字节段   
    End Type  
      

  2.   

    UTC格式的DateTime是用64位的数据来记录的,包含的信息有“年,月,日,时,分,秒,微秒”。
    现在的计算机语言中通用的“标准”数据类型,最长的为32位,因此要定义一个结构体来“占满”64位。你在VB中对 FILETIME 的定义改为:
    Type FILETIME
        iA%
        iB%
        iC%
        iD%
    End Type
    在使用时,照样正常运行。你看一下这个贴子中是怎样得到日期/时间的:
    http://topic.csdn.net/u/20080423/22/89c22862-17d9-40cf-bd19-911d225298da.html
      

  3.   

    晕哟,忘了 double 类型的数据是 64 位的。 ^_^我曾经都用过 double成员 代替 FILETIME成员。