[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;
        }        [DllImport("coredll")]
        public static extern bool SetSystemTime(ref SystemTime sysTime); //设置系统时间
        private void button5_Click(object sender, EventArgs e)
        {
            SystemTime time = new SystemTime();
            time.wYear = 2007;
            time.wMonth = 9;
            time.wDay = 30;
            time.wHour = 16;
            time.wMinute = 0;
            time.wSecond = 0;
            SetSystemTime(ref time);  
        }
设置之后的时间会在原来的时间上加八小时,也就是他会把默认设置的时间是零时区,然后换算成东八区的时间。我输入的时间是东八区的 怎么让他正确显示?直接小时-8?那凌晨1点不就是-7?time.wDay是无符号的。肯定不能这么做。那怎么解决呢 

解决方案 »

  1.   

    http://blog.csdn.net/iorikyo/archive/2006/10/01/1314892.aspx
      

  2.   

    这是控制台程序 我是winform上的会有差别
      

  3.   

    是要换算北京时和世界时么?this.uttime.Text = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");这样就搞定了吧。
      

  4.   

    可以自己写算法来判断,或者转化成 DateTime格式,可以直接用AddHour方法来增加小时
      

  5.   

    在本地使用"控制台程序"可是实现.但是将此代码拷贝到winform应用程序,编译可以通过,但是在运行时提示:MissingManifestResourceException异常,请问如何处理呢???
      

  6.   

    添加一个Manifest Resource资源进来。
    使用 Manifest Generation and Editing Tool 制作,然后作为 24 号资源添加。
      

  7.   

    用SetLocalTime()函数,不要用SetSystemTime。