1个回答
展开全部
首先你得从TextBox.Text中把年月日时分秒解析出来,然后构造DataTime对象
调用DataTime.ToUniversalTime将本地时间转换成UTC时间,之后调用WinAPI SetSystemTime
下面的代码是API的使用方法,其他的内容上面我已经说了,请自行实现,很简单:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace Sample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public struct SystemTime
{
public ushort Year;
public ushort Month;
public ushort DayOfWeek;
public ushort Day;
public ushort Hour;
public ushort Minute;
public ushort Second;
public ushort Millisecond;
};
// 获取系统时间API
[DllImport("kernel32.dll")]
public extern static void GetSystemTime(ref SystemTime sysTime);
// 设置系统时间API
[DllImport("kernel32.dll")]
public extern static bool SetSystemTime(ref SystemTime sysTime);
private void button1_Click(object sender, EventArgs e)
{
// 设定时间,该结构体内的时间必须为UTC时间
SystemTime updatedTime = new SystemTime();
updatedTime.Year = (ushort)2008;
updatedTime.Month = (ushort)4;
updatedTime.Day = (ushort)23;
updatedTime.Hour = (ushort)10;
updatedTime.Minute = (ushort)0;
updatedTime.Second = (ushort)0;
// 设定时间
SetSystemTime(ref updatedTime);
}
}
}
调用DataTime.ToUniversalTime将本地时间转换成UTC时间,之后调用WinAPI SetSystemTime
下面的代码是API的使用方法,其他的内容上面我已经说了,请自行实现,很简单:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace Sample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public struct SystemTime
{
public ushort Year;
public ushort Month;
public ushort DayOfWeek;
public ushort Day;
public ushort Hour;
public ushort Minute;
public ushort Second;
public ushort Millisecond;
};
// 获取系统时间API
[DllImport("kernel32.dll")]
public extern static void GetSystemTime(ref SystemTime sysTime);
// 设置系统时间API
[DllImport("kernel32.dll")]
public extern static bool SetSystemTime(ref SystemTime sysTime);
private void button1_Click(object sender, EventArgs e)
{
// 设定时间,该结构体内的时间必须为UTC时间
SystemTime updatedTime = new SystemTime();
updatedTime.Year = (ushort)2008;
updatedTime.Month = (ushort)4;
updatedTime.Day = (ushort)23;
updatedTime.Hour = (ushort)10;
updatedTime.Minute = (ushort)0;
updatedTime.Second = (ushort)0;
// 设定时间
SetSystemTime(ref updatedTime);
}
}
}
追问
如何从TextBox.Text中把年月日时分秒解析出来,然后构造DataTime对象??
你代码中的2008、4、23 这些都是int的数据,你是如何将读取出来年月日时分秒转换数据类型的??我这边出现的问题是索引超出了数组界限或者数据类型不正确
追答
真遇到菜鸟了,都说的很细了,还要再细。(另外上面那个例子也不能直接运行,只是一部分关键代码,窗体部分没有)
TextBox.Text里存的啥格式,截个图吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询