gpt4 book ai didi

python - 如何提取字节数组字符串的小时、分钟和秒部分?

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:05 25 4
gpt4 key购买 nike

我有一个字节数组 --> bytearray(b'\x07\xe3\n\n\x04\n\x0f\x00\x00\x00<\x00')。

它代表日期和时间字段。我能够提取日期,但无法提取包含 AM/PM 详细信息的时间。如何决定使用哪些格式字符?

我正在使用 struct 库和 unpack_from 方法。

import struct

byte_range = bytearray(b'\x07\xe3\n\n\x04\n\x0f\x00\x00\x00<\x00')
data = struct.unpack_from('!HBB',byte_range)
print(data)

我还期望从中获取小时、分钟和秒的数据以及 AM/PM 详细信息。解码后的日期时间应为 10/10/2019 1:15:00 PM

最佳答案

日期时间元组的形状为(年、月、日、小时、分钟、秒...)

查看每个 format character 的大小并且知道日期时间的每个部分有多大,您就可以找出所需的格式字符。

对于具体情况,您已经为日期选择了正确的格式字符:

  • B 为无符号字符,1 个字节,取值范围:0 到 255
  • H 是一个无符号短整型,2 个字节,取值范围:0 到 65535

正如您所看到的,B 太小,无法存储年份的值,这就是您需要 H 的原因。

现在,您知道时间由 3 个数字组成,其值范围为 0 到 60,因此 B 就是您所需要的所有数字,最终的格式为 ! HBBBBB

结果如下:

>>> import datetime
>>> import struct
>>> byte_range = bytearray(b'\x07\xe3\n\n\x04\n\x0f\x00\x00\x00<\x00')
>>> date_tuple = struct.unpack_from('!HBBBBB', byte_range)
>>> date = datetime.datetime(*date_tuple)
>>> date.strftime('%Y-%m-%d %H:%M %p')
'2019-10-10 04:10 AM'

一个table showing the size of the C integer types可能有用

关于python - 如何提取字节数组字符串的小时、分钟和秒部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58440777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com