C#实现修改系统时间的方法
本文所述C#获取和修改系统时间的实现步骤为:系统的时间从SystemTime结构体中取出,并显示在textBox1上,从setDate,setTime控件中获取年,月,日,小时,分钟,秒信息,存入SystemTime结构体中,然后使用SetLocalTime(refsystemTime)设置为用户指定的时间。本代码编译后会有一个易于操作的窗体。
完整功能代码如下:
usingSystem; usingSystem.Drawing; usingSystem.Collections; usingSystem.ComponentModel; usingSystem.Windows.Forms; usingSystem.Data; usingSystem.Runtime.InteropServices; namespacechangesystime { ///<summary> ///Form1的摘要说明。 ///</summary> publicclassForm1:System.Windows.Forms.Form { privateSystem.Windows.Forms.GroupBoxgroupBox1; privateSystem.Windows.Forms.TextBoxtextBox1; privateSystem.Windows.Forms.GroupBoxgroupBox2; privateSystem.Windows.Forms.Buttonbutton1; privateSystem.Windows.Forms.Buttonbutton2; privateSystem.Timers.Timertimer1; privateSystem.Windows.Forms.DateTimePickersetDate; privateSystem.Windows.Forms.DateTimePickersetTime; privateSystem.ComponentModel.IContainercomponents; [StructLayout(LayoutKind.Sequential)] publicstructSystemTime { publicushortwYear; publicushortwMonth; publicushortwDayOfWeek; publicushortwDay; publicushortwHour; publicushortwMinute; publicushortwSecond; publicushortwMiliseconds; } //用于设置系统时间 [DllImport("Kernel32.dll")] publicstaticexternboolSetLocalTime(refSystemTimesysTime); //用于获得系统时间 [DllImport("Kernel32.dll")] publicstaticexternvoidGetLocalTime(refSystemTimesysTime); publicForm1() { // //Windows窗体设计器支持所必需的 // InitializeComponent(); // //TODO:在InitializeComponent调用后添加任何构造函数代码 // } ///<summary> ///清理所有正在使用的资源。 ///</summary> protectedoverridevoidDispose(booldisposing) { if(disposing) { if(components!=null) { components.Dispose(); } } base.Dispose(disposing); } #regionWindows窗体设计器生成的代码 ///<summary> ///设计器支持所需的方法-不要使用代码编辑器修改 ///此方法的内容。 ///</summary> privatevoidInitializeComponent() { this.groupBox1=newSystem.Windows.Forms.GroupBox(); this.textBox1=newSystem.Windows.Forms.TextBox(); this.groupBox2=newSystem.Windows.Forms.GroupBox(); this.setTime=newSystem.Windows.Forms.DateTimePicker(); this.setDate=newSystem.Windows.Forms.DateTimePicker(); this.button1=newSystem.Windows.Forms.Button(); this.button2=newSystem.Windows.Forms.Button(); this.timer1=newSystem.Timers.Timer(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit(); this.SuspendLayout(); // //groupBox1 // this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location=newSystem.Drawing.Point(32,24); this.groupBox1.Name="groupBox1"; this.groupBox1.Size=newSystem.Drawing.Size(216,64); this.groupBox1.TabIndex=0; this.groupBox1.TabStop=false; this.groupBox1.Text="系统当前时间"; // //textBox1 // this.textBox1.Location=newSystem.Drawing.Point(16,24); this.textBox1.Name="textBox1"; this.textBox1.ReadOnly=true; this.textBox1.Size=newSystem.Drawing.Size(184,21); this.textBox1.TabIndex=1; this.textBox1.Text=""; // //groupBox2 // this.groupBox2.Controls.Add(this.setTime); this.groupBox2.Controls.Add(this.setDate); this.groupBox2.Location=newSystem.Drawing.Point(32,112); this.groupBox2.Name="groupBox2"; this.groupBox2.Size=newSystem.Drawing.Size(216,64); this.groupBox2.TabIndex=1; this.groupBox2.TabStop=false; this.groupBox2.Text="时间设置为"; // //setTime // this.setTime.Format=System.Windows.Forms.DateTimePickerFormat.Time; this.setTime.Location=newSystem.Drawing.Point(128,24); this.setTime.Name="setTime"; this.setTime.ShowUpDown=true; this.setTime.Size=newSystem.Drawing.Size(72,21); this.setTime.TabIndex=1; this.setTime.TabStop=false; // //setDate // this.setDate.Format=System.Windows.Forms.DateTimePickerFormat.Short; this.setDate.Location=newSystem.Drawing.Point(8,24); this.setDate.Name="setDate"; this.setDate.Size=newSystem.Drawing.Size(104,21); this.setDate.TabIndex=0; // //button1 // this.button1.Location=newSystem.Drawing.Point(40,200); this.button1.Name="button1"; this.button1.Size=newSystem.Drawing.Size(64,32); this.button1.TabIndex=2; this.button1.Text="设置"; this.button1.Click+=newSystem.EventHandler(this.button1_Click); // //button2 // this.button2.Location=newSystem.Drawing.Point(168,200); this.button2.Name="button2"; this.button2.Size=newSystem.Drawing.Size(64,32); this.button2.TabIndex=3; this.button2.Text="退出"; this.button2.Click+=newSystem.EventHandler(this.button2_Click); // //timer1 // this.timer1.Enabled=true; this.timer1.SynchronizingObject=this; this.timer1.Elapsed+=newSystem.Timers.ElapsedEventHandler(this.timer1_Elapsed); // //Form1 // this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14); this.ClientSize=newSystem.Drawing.Size(280,261); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupBox1); this.Name="Form1"; this.Text="获取和设置系统时间"; this.groupBox1.ResumeLayout(false); this.groupBox2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit(); this.ResumeLayout(false); } #endregion ///<summary> ///应用程序的主入口点。 ///</summary> [STAThread] staticvoidMain() { Application.Run(newForm1()); } privatevoidbutton2_Click(objectsender,System.EventArgse) { this.Close();//关闭当前窗体 } privatevoidtimer1_Elapsed(objectsender,System.Timers.ElapsedEventArgse) { //清除textBox1上的字符串 textBox1.Clear(); //创建SystemTime结构体,用于接收系统当前时间 SystemTimesystemTime=newSystemTime(); GetLocalTime(refsystemTime);//获得系统的时间并存在SystemTime结构体中 //将系统的时间从SystemTime结构体中中取出,并显示在textBox1上 textBox1.Text+=systemTime.wYear.ToString()+"-"; textBox1.Text+=systemTime.wMonth.ToString()+"-"; textBox1.Text+=systemTime.wDay.ToString()+""; textBox1.Text+=systemTime.wHour.ToString()+":"; textBox1.Text+=systemTime.wMinute.ToString()+":"; textBox1.Text+=systemTime.wSecond.ToString(); //textBox1.Refresh(); } privatevoidbutton1_Click(objectsender,System.EventArgse) { //创建SystemTime结构体,用于接收用户设置的时间 SystemTimesystemTime=newSystemTime(); //从setDate,setTime控件中获取年,月,日,小时,分钟,秒信息,存入SystemTime结构体中 systemTime.wYear=(ushort)setDate.Value.Year; systemTime.wMonth=(ushort)setDate.Value.Month; systemTime.wDay=(ushort)setDate.Value.Day; systemTime.wHour=(ushort)setTime.Value.Hour; systemTime.wMinute=(ushort)setTime.Value.Minute; systemTime.wSecond=(ushort)setTime.Value.Second; //将系统的时间设置为用户指定的时间 SetLocalTime(refsystemTime); } } }