NTP时间转换
 
? ? ? NTP時(shí)間轉(zhuǎn)換,百度了很久沒有結(jié)果。自己試了一下可以了。
? ? ? 設(shè)備上送上來數(shù)據(jù)包的時(shí)間為NTP格式,wireshark中抓包原始數(shù)據(jù)為:
? ? ? DA ?E5 D0 E5
 
? ? ?1、通過struct.unpack,轉(zhuǎn)化為整型:
? ? ?s4=struct.unpack(‘4B’,buf[0][102:106])
? ? ?結(jié)果如下:218??229 ?208 229
 
? ? ?2、每個(gè)整型轉(zhuǎn)換為16進(jìn)制的字符串,并拼接起來,結(jié)果如下:
? ? ? t1=str(hex(s4[0]))
? ? ?Temp=’0xda0xe50xd00xe5’
? ? ?通過temp=temp.replace(‘0x’,’’),刪除‘0x’,結(jié)果如下:
? ? ?‘dae5d0e5’
 
? ? ?3、轉(zhuǎn)化為10進(jìn)制數(shù)據(jù),
? ? ? Timestamp?=?int(temp,16)
? ? ? 結(jié)果:3672494309
 
? ? ?4、通過datetime的函數(shù),轉(zhuǎn)換為datetime
? ? ? dateArray?=?datetime.datetime.utcfromtimestamp(timestamp)
 
? ? ? 5、上述時(shí)間上,年還需要減去70(NTP時(shí)間從1900/1/1 00:00:00開始算,而utc時(shí)間從1970年開始算)
? ? ?Con_time?=datetime.datetime(dateArray-70,dateArray.month,dateArray.day,
? ? ? dateArray.hour,dateArray.minute,dateArray.second)
? ? ?最終獲得設(shè)備時(shí)間:2016.5.17 17:18:29
 
 
總結(jié)
 
                            
                        - 上一篇: 电机拖动系统
- 下一篇: 使用Excel进行时间转换(附时间小知识
