曲径通幽论坛

标题: FileTimeToSystemTime() -- 文件时间转系统时间 [打印本页]

作者: beyes    时间: 2012-2-17 10:59
标题: FileTimeToSystemTime() -- 文件时间转系统时间
FileTimeToSystemTime() 原型如下:
BOOL WINAPI FileTimeToSystemTime(
  __in   const FILETIME *lpFileTime,
  __out  LPSYSTEMTIME lpSystemTime
);
该函数将文件时间转换成系统时间。文件时间是一个 FILETIME 结构,系统时间是 SYSTEMTIME 结构。所谓系统时间就是系统上通常所看到的用年,月,日,时,分,秒所表示的时间。

第 1 个参数 lpFileTime 是文件时间,可用  GetFileTime()  函数,也可以用 GetFileAttributesEx() 函数获得。

第 2 个参数 lpSystemTime 表示系统时间。

测试代码
[C++] 纯文本查看 复制代码
#include "stdafx.h"

DWORD ChangeTime (PFILETIME lptime)
{
    FILETIME ftLocal;    //文件时间结构

    SYSTEMTIME st;        //系统时间结构

    FileTimeToLocalFileTime(lptime, &ftLocal);    //调整为系统所在时区时间

    FileTimeToSystemTime(&ftLocal, &st);    //文件时间转为系统时间

    _tprintf (TEXT("%4d年%2d月%2d日  %2d:%2d:%2d\n"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);

    return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "chs");

    WIN32_FILE_ATTRIBUTE_DATA wfad;

    if (!GetFileAttributesEx(argv[1], GetFileExInfoStandard, &wfad)) {
        _tprintf (TEXT("获取文件属性错误:%d\n"), GetLastError());
        return (-1);
    }
    //_tprintf ("创建时间
    ChangeTime (&wfad.ftCreationTime);

    return 0;
}

运行输出:
D:\WinAPI\GetFileAttEx\Debug>GetFileAttEx.exe d:\special.php
2011年10月25日  14: 9:19





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2