admin 管理员组

文章数量: 887021

        由于软件系统需要与MES做数据对接,设备电脑时间与MES端有相差,而采集数据的时间需要做到统一。当然不建议修改本机系统的时间,如需与mes时间一致,建议软件项目使用自身时间。由于开发软件受限,当然更多的是技术有限,哈哈哈,所以直接采用了修改系统时间的方法实现功能需求。话不多说,上代码。

public class DateTimeSynchronization
  {
    [StructLayout(LayoutKind.Sequential)]
    private struct Systemtime
    {
      public short year;
      public short month;
      public short dayOfWeek;
      public short day;
      public short hour;
      public short minute;
      public short second;
      public short milliseconds;
    }
 
    [DllImport("kernel32.dll")]
    private static extern bool SetLocalTime(ref Systemtime time);
 
    private static uint swapEndian(ulong x)
    {
      return (uint)(((x & 0x000000ff) << 24) +
      ((x & 0x0000ff00) << 8) +
      ((x & 0x00ff0000) >> 8) +
      ((x & 0xff000000) >> 24));
    }
 
    /// <summary>
    /// 设置系统时间
    /// </summary>
    /// <param name="dt">需要设置的时间</param>
    /// <returns>返回系统时间设置状态,true为成功,false为失败</returns>
    private static bool SetLocalDateTime(DateTime dt)
    {
      Systemtime st;
      st.year = (short)dt.Year;
      st.month = (short)dt.Month;
      st.dayOfWeek = (short)dt.DayOfWeek;
      st.day = (short)dt.Day;
      st.hour = (short)dt.Hour;
      st.minute = (short)dt.Minute;
      st.second = (short)dt.Second;
      st.milliseconds = (short)dt.Millisecond;
      bool rt = SetLocalTime(ref st);
      return rt;
    }
}

代码来源:https://www.jb51/article/204680.htm,如有侵权请联系删之。博客内容仅作个人笔记记录,便于查找 哈哈哈哈。测试可用!

本文标签: 时间 系统 Windows