时间 数值 字节 之间的互相转换 Time value byte conversion

//定义当前时间
            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 ,读取了别人传过来字节数组,再将字节数组转换为时间,

猜你喜欢

转载自www.cnblogs.com/boxkevin/p/11945509.html
今日推荐