簡體   English   中英

如何在python中解壓縮二進制格式的日期?

[英]How to unpack binary formatted dates in python?

在數據庫導出文件中,我有一個日期列,以二進制格式存儲。 我正在嘗試解壓縮文件中的日期,以便“\\ x07 \\ xdb \\ x0c \\ x01”再次變為“01-12-2011”。

我知道十六進制值如何與它們的十進制值相對應,

0x07DB = 2011
0x0C = 12
0x01 = 01

但是如何正確解壓這些格式化的日期呢?

使用struct模塊將這些值解壓縮為整數元組:

import struct
year, month, day = struct.unpack('>HBB', "\x07\xdb\x0c\x01")

>HBB格式說明符告訴struct期望小端格式的3個值,一個無符號短(一個2字節值,讀為整數)和無符號字符(1個字節值,讀為整數)。

然后,您可以將這些傳遞給datetime.date()以創建日期對象(如果需要):

from datetime import date
import struct

somedate = date(*struct.unpack('>HBB', "\x07\xdb\x0c\x01"))

演示:

>>> import struct
>>> from datetime import date
>>> date(*struct.unpack('>HBB', "\x07\xdb\x0c\x01"))
datetime.date(2011, 12, 1)

或者您可以使用字符串格式:

>>> '{2:02d}-{1:02d}-{0}'.format(*struct.unpack('>HBB', "\x07\xdb\x0c\x01"))
'01-12-2011'

創建表示該日期的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM