Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

SetSystemTime (kernel32)
 
.
Summary
Sets the current system time and date. The system time is expressed in Coordinated Universal Time (UTC).

C# Signature:

[DllImport("kernel32.dll")]
static extern bool SetSystemTime(ref SYSTEMTIME time);

VB Signature:

<DllImport("kernel32.dll")> _
Shared Function SetSystemTime(ByRef time As SYSTEMTIME) As Boolean
End Function

User-Defined Types:

SYSTEMTIME

Notes:

Fill-in an instance of the SYSTEMTIME struct and call SetSystemTime(ref obj), where obj is the instance of your struct.

Tips & Tricks:

Please add some!

Sample Code:

using System;
using System.Runtime.InteropServices;

namespace SystemDateTime
{
    class Class1
    {    /// <summary> This structure represents a date and time. </summary>
        public struct SYSTEMTIME
        {    public ushort wYear,wMonth,wDayOfWeek,wDay,
                wHour,wMinute,wSecond,wMilliseconds;
        }

        /// <summary>
        /// This function retrieves the current system date
        /// and time expressed in Coordinated Universal Time (UTC).
        /// </summary>
        /// <param name="lpSystemTime">[out] Pointer to a SYSTEMTIME structure to
        /// receive the current system date and time.</param>
        [DllImport("kernel32.dll")]
        public extern static void GetSystemTime(ref SYSTEMTIME lpSystemTime);

        /// <summary>
        /// This function sets the current system date
        /// and time expressed in Coordinated Universal Time (UTC).
        /// </summary>
        /// <param name="lpSystemTime">[in] Pointer to a SYSTEMTIME structure that
        /// contains the current system date and time.</param>
        [DllImport("kernel32.dll")]
        public extern static uint SetSystemTime(ref SYSTEMTIME lpSystemTime);

        static void Main()
        {    Console.WriteLine(DateTime.Now.ToString());
            SYSTEMTIME st = new SYSTEMTIME();
            GetSystemTime(ref st);
            Console.WriteLine("Adding 1 hour...");
            st.wHour = (ushort)(st.wHour + 1 % 24);
            if (SetSystemTime(ref st) == 0)
                Console.WriteLine("FAILURE: SetSystemTime failed");
            Console.WriteLine(DateTime.Now.ToString());
            Console.WriteLine("Setting time back...");
            st.wHour = (ushort)(st.wHour - 1 % 24);
            SetSystemTime(ref st);
            Console.WriteLine(DateTime.Now.ToString());
            Console.WriteLine("Press Enter to exit");
            Console.Read();
        }
    }
}

Documentation

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

 
Access PInvoke.net directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version
Revisions