//定义当前时间 DateTime localtime = DateTime.Now; //文本框显示当前时间 textBox1.Text = localtime.ToString("yyyy-MM-dd HH:mm:ss"); //将时间转换为整数 double timestamp = LocalTimeToUnixTimestamp(localtime); textBox4.Text = Convert.ToString(timestamp); //将时间整数转换为4字节数组,小端模式 byte[] timebytes = BitConverter.GetBytes(Convert.ToUInt32(timestamp)); textBox2.Text = BitConverter.ToString(timebytes); //调用方法输出字节数组; //调用方法收到字节数组; //将4字节数组转换为整数,小端模式; double converttimestamp = BitConverter.ToUInt32(timebytes,0); //将整数转换为时间; DateTime converttime = UnixTimestampToLocalTime(converttimestamp); textBox3.Text = converttime.ToString("yyyy-MM-dd HH:mm:ss");
调用的两个方法:
public static double LocalTimeToUnixTimestamp(DateTime localTime) { return Convert.ToInt64((localTime.ToUniversalTime() - _unixTime).TotalSeconds); } public static DateTime UnixTimestampToLocalTime(double unix) { return _unixTime.AddSeconds(unix).ToLocalTime(); }
定义个初始时间:
private readonly static DateTime _unixTime = TimeZoneInfo.ConvertTimeToUtc(new DateTime(1970, 1, 1), TimeZoneInfo.Utc);
非常简单的办法 实现了 将时间转换为字节数组,输出到Plc ,读取了别人传过来字节数组,再将字节数组转换为时间,