stevenjin 2022-01-25 19:20 采纳率: 98.2%
浏览 31
已结题

tcp将时间用16进制发送

以下是乱码,
socket中用16进制发送时间,正确方式是怎样呢?

 byte[] data = new byte[4];
 long ts = (uint)(DateTime.Now.Ticks / 10000);
 System.Array.Copy(System.BitConverter.GetBytes(ts), 0, data, 0, sizeof(uint));
socketTCP.SendData(data);

  • 写回答

4条回答 默认 最新

  • stevenjin 2022-01-28 09:14
    关注
    
     /// <summary>
           /// 把一个时间转化成四个字节的16进制字符串
           /// </summary>
           /// <param name="time">要转化的时间</param>
           /// <returns></returns>
           public static String TimeToHex(DateTime time)
           {
               StringBuilder sb = new StringBuilder();
               DateTime timeStar = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime (1970,01,01));
               TimeSpan timeSpan= time - timeStar;
               uint unitSpan= Convert.ToUInt32(timeSpan.TotalSeconds);
               if (unitSpan<0)
               {
                   return sb.ToString();
               }
               byte[] bytes = System.BitConverter.GetBytes(unitSpan);
               for (int i = bytes.Length-1; i >= 0; i--)
               {
                   sb.Append(bytes[i].ToString("X2"));
               }
               return sb.ToString();
           }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月17日
  • 创建了问题 1月25日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?