SetLocalTime
调用进程必须有权限的SE_SYSTEMTIME_NAME。

解决方案 »

  1.   

    http://blog.sina.com.cn/s/blog_4c7fa77b01000at8.html
      

  2.   

    UNIX 时间戳只到秒,再精确的单位就没了。
      

  3.   

    void SetUnixTimeAsLocalTime(ULONGLONG ullUnixTime)
    {
        FILETIME ftUTC = { 0 };
        FILETIME ftLoc = { 0 };
        ULARGE_INTEGER ull = { 0 };
        ull.QuadPart = 116444736000000000ULL + (ullUnixTime * 10000000ULL);
        ftUTC.dwLowDateTime = ull.LowPart;
        ftUTC.dwHighDateTime = ull.HighPart;
        FileTimeToLocalFileTime(&ftUTC, &ftLoc);
        FileTimeToSystemTime(&ftLoc, &st);
        SetLocalTime(&st);
    }
    这段代码只是设置的,如果没有权限依然没法设置。