try this:using System;
using System.Runtime.InteropServices;namespace ConsoleApplication20
{
  [StructLayout(LayoutKind.Sequential)]
  public struct SYSTEMTIME
  {
    public ushort wYear;
    public ushort wMonth;
    public ushort wDayOfWeek;
    public ushort wDay;
    public ushort wHour;
    public ushort wMinute;
    public ushort wSecond;
    public ushort wMilliseconds;    public DateTime ToDateTime()
    {
      return new DateTime(wYear, wMonth, wDay, wHour, wMinute, wSecond,
wMilliseconds);
    }
  }  class Win32API
  {
    [DllImport("Kernel32.dll")]
    public static extern bool SetSystemTime(ref SYSTEMTIME st);
    [DllImport("Kernel32.dll")]
    public static extern void GetSystemTime(out SYSTEMTIME st);
  }  class Class1
  {
    [STAThread]
    static void Main(string[] args)
    {
      SYSTEMTIME st;
      Win32API.GetSystemTime(out st); // gets current time
      Console.WriteLine( st.ToDateTime().ToLocalTime().ToString() );
      st.wMinute++; // Adjust minutes
      if (!Win32API.SetSystemTime(ref st)) // sets system time
        Console.WriteLine("An error occured setting the system time");
      Win32API.GetSystemTime(out st); // gets current time
      Console.WriteLine( st.ToDateTime().ToLocalTime().ToString() );
      Console.ReadLine();
    }
  }
}

解决方案 »

  1.   

    .NET并没有提供可以修改系统时间的名字空间(namespace),可以通过Win32 API的SetSystemTime API函数来设置系统时间:using System;
    using System.Runtime.InteropServices;[StructLayout(LayoutKind.Sequential)]
    public struct SystemTime
    {
    public ushort wYear;
    public ushort wMonth;
    public ushort wDayOfWeek;
    public ushort wDay;
    public ushort wHour;
    public ushort wMinute;
    public ushort wSecond;
    public ushort wMiliseconds;
    }public class Win32
    {
    [DllImport("Kernel32.dll")]
    public static extern bool SetSystemTime( ref SystemTime sysTime );
    [DllImport("Kernel32.dll")]
    public static extern void GetSystemTime(ref SystemTime sysTime);
    }public class TestPInvoke
    {
    public static void Main()
    {
    SystemTime sysTime =3D new SystemTime(); sysTime.wYear = 2002;
    sysTime.wMonth=1;
    sysTime.wDay=1;
    sysTime.wDayOfWeek=1;
    sysTime.wHour=1;
    sysTime.wMinute=1;
    sysTime.wSecond=1;
    sysTime.wMiliseconds=1;

    Win32.SetSystemTime(ref sysTime);
    }
    }
    http://groups.google.com/groups?hl=zh-CN&lr=lang_zh-CN|lang_zh-TW|lang_en&ie=UTF-8&selm=O10nq1XjAHA.2184%40tkmsftngp02