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
}
}