Как преобразовать двоичный код little endian с плавающей запятой в формат времени

Я пытаюсь прочитать файл (.SKD), написанный в двоичном формате с прямым порядком байтов. Я открыл файл и выделил / распечатал 4 байта, которые представляют отметку времени, которую я хочу преобразовать в форму ЧЧ: ММ.

пример байтов, которые у меня есть: 26, 231, 215, 85 148, 20, 216, 85 90, 253, 215, 85


person Dav3    schedule 04.09.2015    source источник


Ответы (1)


попробуй это:

import struct
import datetime

def convert(timestamp):
    return datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')

def binary_to_int(b):
    return struct.unpack('<i', b)[0] # read string as little endian integer

sampledata = [26, 231, 215, 85]
binarydata = struct.pack('<BBBB', *sampledata)
timestamp = binary_to_int(binarydata)
result = convert(timestamp)

модуль структуры используется для чтения двоичного кода как little endian

для получения дополнительной информации: https://docs.python.org/2/library/struct.html

person DorElias    schedule 04.09.2015