using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace IOTContainer.Common { public class TimeManage { #region 设置本地时间 [DllImport("Kernel32.dll")] public static extern bool SetLocalTime(ref SystemTime sysTime); [StructLayout(LayoutKind.Sequential)] public struct SystemTime { [MarshalAs(UnmanagedType.U2)] public short wYear; [MarshalAs(UnmanagedType.U2)] public short wMonth; [MarshalAs(UnmanagedType.U2)] public short wDayOfWeek; [MarshalAs(UnmanagedType.U2)] public short wDay; [MarshalAs(UnmanagedType.U2)] public short wHour; [MarshalAs(UnmanagedType.U2)] public short wMinute; [MarshalAs(UnmanagedType.U2)] public short wSecond; [MarshalAs(UnmanagedType.U2)] public short wMilliseconds; } /// /// 设置本地时间 /// /// /// public static bool SetLocalTimeByStr(string timestr) { bool flag = false; SystemTime sysTime = new SystemTime(); DateTime dt = Convert.ToDateTime(timestr); sysTime.wYear = Convert.ToInt16(dt.Year); sysTime.wMonth = Convert.ToInt16(dt.Month); sysTime.wDay = Convert.ToInt16(dt.Day); sysTime.wHour = Convert.ToInt16(dt.Hour); sysTime.wMinute = Convert.ToInt16(dt.Minute); sysTime.wSecond = Convert.ToInt16(dt.Second); try { flag = SetLocalTime(ref sysTime); } catch (Exception ex) { Log.MyLog.WriteLogFile("SetLocalTimeByStr函数执行异常" + ex.ToString(), "TimeManageError"); } return flag; } #endregion } }