C# 根据textBox上的年月日时分秒修改系统时间,这代码怎么做~

最好哪位大大发代码给我看看,菜鸟在这里拜谢了... 最好哪位大大发代码给我看看,菜鸟在这里拜谢了 展开
 我来答
QQNJQQ
推荐于2021-01-10 · 超过12用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:0
展开全部
首先你得从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);
}
}
}
追问
如何从TextBox.Text中把年月日时分秒解析出来,然后构造DataTime对象??
你代码中的2008、4、23 这些都是int的数据,你是如何将读取出来年月日时分秒转换数据类型的??我这边出现的问题是索引超出了数组界限或者数据类型不正确
追答
真遇到菜鸟了,都说的很细了,还要再细。(另外上面那个例子也不能直接运行,只是一部分关键代码,窗体部分没有)
TextBox.Text里存的啥格式,截个图吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式