大家好,欢迎来到IT知识分享网。
需求描述:
因项目需求需要实现将当前时间戳如:2022-11-15 11:15:20 进行转化为:160B0F0B0F14格式进行填充组包,其转化过程如下:
取年的2022的后2位——>22 ,再转为16进制——>16,然后再转大写——>16
取月份的11——>11 ,再转为16进制——>0b,然后再转大写——>0B
取日的15——>15,再转为16进制——>0f,然后再转大写——>0F
取时的11——>11,再转为16进制——>0b,然后再转大写——>0B
取分的15——>15,再转为16进制——>0f,然后再转大写——>0F
取秒的20——>20 ,再转为16进制——>14,然后再转大写——>14
然后再将获取到的6个拼接,组成160B0F0B0F14,以用作协议包中的时间。
Python核心算法如下:
# -*- coding: utf-8 -*- # 开发团队 :Jimi # 开发人员 :莫天杨 # 开发时间 :2022/11/10 18:07 # 文件名称 :time.PY # 开发工具 :PyCharm # 取系统当前时间22-11-10 18:30:10 按两位转16进制并且转大写 import time year = hex(int(time.strftime('%y', time.localtime(time.time())))).replace('0x', "").zfill(2).upper() month = hex(int(time.strftime('%m', time.localtime(time.time())))).replace('0x', "").zfill(2).upper() day = (hex(int(time.strftime('%d', time.localtime(time.time()))))).replace('0x', "").zfill(2).upper() hour = hex(int(time.strftime('%H', time.localtime(time.time())))).replace('0x', "").zfill(2).upper() min = hex(int(time.strftime('%M', time.localtime(time.time())))).replace('0x', "").zfill(2).upper() second = hex(int(time.strftime('%S', time.localtime(time.time())))).replace('0x', "").zfill(2).upper() # print(second.zfill(2)) datetime = year + month + day + hour + min + second print("DATETIME=", datetime)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/49005.html