SystemTimeToFileTime

C# Signature:

[DllImport("kernel32.dll")]
static extern bool SystemTimeToFileTime([In] IntPtr lpSystemTime,
   IntPtr lpFileTime);

Sample Code:

//malloc the SystemTime structure
    int stLen = Marshal.SizeOf(st);
    IntPtr pSystemTime = Marshal.AllocHGlobal(stLen);
    // copy SystemTime structure to the global heap
    Marshal.StructureToPtr(st, pSystemTime, true);

    //now malloc the Filetime;
    long lFileTime = 0;
    int ftLen = sizeof(long);
    IntPtr pFileTime = Marshal.AllocHGlobal(ftLen);

    //call the kernal32.dll SystemTimToFileTime method
    SystemTimeToFileTime(pSystemTime, pFileTime);

    //marshal the Filetime back into managed memory
    lFileTime = Marshal.ReadInt64(pFileTime);

    // convvert filetime to System.DateTime class
    DateTime dt = DateTime.FromFileTimeUtc(lFileTime);

    //free up resources
    Marshal.FreeHGlobal(pSystemTime);
    Marshal.FreeHGlobal(pFileTime);

    return dt;

Última actualización