c# 利用Window API函数修改计算机日期时间和格式

Public Class SetComputerDateTime

{

       [DllImport("kernel32.dll", EntryPoint = "GetSystemDefaultLCID")]
        public static extern int GetSystemDefaultLCID();


        [DllImport("kernel32.dll", EntryPoint = "SetLocaleInfoA")]
        public static extern int SetLocaleInfo(int Locale, int LCType, string lpLCData);

 

        public const int LOCALE_SLONGDATE = 0x20;
        public const int LOCALE_SSHORTDATE = 0x1F;
        public const int LOCALE_STIME = 0x1E;

 

 

        [DllImportAttribute("Kernel32.dll")]
        public static extern void SetLocalTime(SystemTime st);

 

        public ushort wYear;
        public ushort wMonth;
        public ushort wDayOfWeek;
        public ushort wDay;
        public ushort wHour;
        public ushort wMinute;
        public ushort wSecond;
        public ushort wMilliseconds;

 

        public SetComputerDateTimeFormat()

       {

 

       }

 

       public void SetDateTimeFormat()

       {

            try
            {
                int x = GetSystemDefaultLCID();
                SetLocaleInfo(x, LOCALE_SSHORTDATE, "yyyy/MM/dd");   //短日期格式  
                SetLocaleInfo(x, LOCALE_SLONGDATE, "yyyy年MM月dd日");   //长日期格式
                SetLocaleInfo(x, LOCALE_STIME, "HH:mm:ss tt");        //时间格式
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

       }

 

       public void SetDateTime(DateTime dateTime)

       {

            try
            {
                    SystemTime mySystemTime = new SystemTime();
                    mySystemTime .wYear = (ushort)systemDateTime.Year;//年
                    mySystemTime .wMonth = (ushort)systemDateTime.Month;//月
                    mySystemTime .wDay = (ushort)systemDateTime.Day;//日
                    mySystemTime .wHour = (ushort)systemDateTime.Hour;//时
                    mySystemTime .wMinute = (ushort)systemDateTime.Minute;//分
                    mySystemTime .wSecond = (ushort)systemDateTime.Second;//秒
                    SetLocalTime(mySystemTime );
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

       }

}

 

[StructLayoutAttribute(LayoutKind.Sequential)]
public class SystemTime
{
     public ushort wYear;
     public ushort wMonth;
     public ushort wDayOfWeek;
     public ushort wDay;
     public ushort wHour;
     public ushort wMinute;
     public ushort wSecond;
     public ushort wMilliseconds;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值