问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C# 更改系统时间

发布网友 发布时间:2022-04-22 23:42

我来回答

4个回答

热心网友 时间:2023-10-08 21:38

C#没有提供直接的方法对系统时间进行设定,一般我们只能通过DateTime.Now获取系统时间,但是并不能对这个时间进行修改。

使用C#代码设置系统日期和时间的程序开发步骤如下:

(1)为了使用DllImportAttribute类,需要引入命名空间:

using System.Runtime.InteropServices;

(2)自定义类SetSystemDateTime用于设置系统时间。代码如下:

public class SetSystemDateTime
{

[DllImportAttribute( "Kernel32.dll" )]

public static extern void GetLocalTime(SystemTime st ) ;

[DllImportAttribute( "Kernel32.dll" )]

public static extern void SetLocalTime(SystemTime st ) ;

}

(3)自定义类SystemTime用于定义日期时间类。代码如下:

[StructLayoutAttribute( LayoutKind.Sequential)]
public class SystemTime

{

public ushort vYear;

public ushort vMonth;

public ushort vDayOfWeek;

public ushort vDay;

public ushort vHour;

public ushort vMinute;

public ushort vSecond;

}

(4)选择一个时间,单击“设置系统新日期时间”按钮,在该按钮的Click事件下,调用自定义类SetSystemDateTime和SystemTime,修改当前系统日期时间。代码如下:

private void button2_Click(object sender, EventArgs e)

{

//设置系统当前日期时间

if (MessageBox.Show("您真的确定更改系统当前日期和时间吗?", "信息提示", MessageBoxButtons.OK) == DialogResult.OK)

{

DateTime Year = this.dateTimePicker1.Value;

SystemTime MySystemTime = new SystemTime();

SetSystemDateTime.GetLocalTime(MySystemTime);

MySystemTime.vYear = (ushort)this.dateTimePicker1.Value.Year;

MySystemTime.vMonth = (ushort)this.dateTimePicker1.Value.Month;

MySystemTime.vDay = (ushort)this.dateTimePicker1.Value.Day;

MySystemTime.vHour = (ushort)this.dateTimePicker2.Value.Hour;

MySystemTime.vMinute = (ushort)this.dateTimePicker2.Value.Minute;

MySystemTime.vSecond = (ushort)this.dateTimePicker2.Value.Second;

SetSystemDateTime.SetLocalTime(MySystemTime);
}
}

热心网友 时间:2023-10-08 21:38

每执行一次重新生成
另外北京时间要比设定的时间慢8小时

DateTime DTime = Convert.ToDateTime(systemTime);
wYear = (ushort)DTime.Year;
wMonth = (ushort)DTime.Month;
//处理北京时间
int beijingTime = DTime.Hour - 8;
if (beijingTime <= 0)
{
beijingTime += 24;
wDay = Convert.ToUInt16(DTime.Day - 1);
wDayOfWeek = Convert.ToUInt16(DTime.DayOfWeek - 1);
}
else
{
wDay = Convert.ToUInt16(DTime.Day);
wDayOfWeek = Convert.ToUInt16(DTime.DayOfWeek);
}
wHour = (ushort)beijingTime;
wMinute = (ushort)DTime.Minute;
wSecond = (ushort)DTime.Second;
wMiliseconds = (ushort)DTime.Millisecond;

热心网友 时间:2023-10-08 21:39

调试一下看看跟踪值

热心网友 时间:2023-10-08 21:39

this.Text=DataTme.Now.ToShortDataString();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
提升学历选自考好还是成考好 成考和自考的文凭哪个好 2024年成人自考和成人高考哪个更好 家用净水器滤芯类型有哪些 家用净水器什么滤芯好 请问在VB中如何调用多线程? 交强险理赔后第二年上涨吗? 交强险出一次险第二年保费多出多少? 全家人都爱吃的家常菜目录 丽台Quadro P5000专业图形显卡-购买最佳价格 c++语言 获取系统时间 C++怎么显示系统时间! 如何获取当前系统时间 怎样在win7系统下用VC++6.0修改系统时间 如何通过C++修改系统时间? 如何通过C#修改计算机系统时间 c语言中取系统时间 getlocaltime和getsystemtime的区别 请问怎样把time_t类型转换成SYSTEMTIME类型? 在C#中为什么SystemTime会出错 android有个获取时间的函数:systemTime(SYSTEM_TIME_MONOTONIC);我想知道SYSTEM_TIME_MONOTONIC什么意思 c++中的 SYSTEMTIME 怎么用,有什么意思。 开机出现systemtime system time 是什么意思 谁知道三星s10这个怎么关闭啊??急急急 三星s10+怎么关闭OMADM? 三星s8状态栏上的HD是什么?怎么取消? 求暗黑2所有符文合成 《暗黑破坏神2》符文之语合成公式是什么? 三星note 10+5g怎么没有关闭HD的功能? c#设置时间 vb 怎么更改文件的修改时间 正新鸡排怎么腌制? VC++6.0,怎样用语句来修改系统时间. 怎样腌制鸡排比较嫩? C++怎么设置时间? 如何腌制鸡排吃起来口感嫩、滑嫩滑 鸡排怎么做做出来才会软软的? 如何把腌制鸡排做得吃起来口感嫩滑? 正新鸡排怎么腌制 鸡排怎么腌制?有什么特别要注意的地方吗? 鸡排怎么腌制鲜嫩多汁 鸡胸做鸡排怎么腌制 炸鸡排怎么腌制? 苹果watch插上电源无法更新安装 怎么让他人的QQ号存在被盗风险 怎么把QQ号变成有被盗风险? 我的qq存在被盗怎么办? 怎么QQ天天被盗啊? 我qq存在被盗风险,可是怎么做都弄不回来,怎么办才可以弄回来