Konvertieren Sie das aktuelle Datum in ein Uint8-Byte-Array im Little-Endian-Format

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Konvertieren Sie das aktuelle Datum in ein Uint8-Byte-Array im Little-Endian-Format

by Guest » 20 Jan 2025, 15:17

Ich versuche, das aktuelle Datum in ein Uint8-Byte-Array im Little-Endian-Format zu konvertieren.
Was ich versucht habe, ist Folgendes:

Code: Select all

const epochSeconds = new Date().valueOf();
Dies funktioniert und gibt das aktuelle Datum im Epochen-Zeitstempelformat zurück.
Ich erstelle dann einen Array-Puffer von 8 Bytes und eine Datenansicht und versuchen Sie, die Bytes hinzuzufügen, aber es scheint falsch zu sein

Code: Select all

const byteArray = this.longToByteArray(epochSeconds);
const buffer = new ArrayBuffer(8);
const dataView = new DataView(buffer);
for (let i = 0; i < 8; i++) {
dataView.setUint8(i, byteArray[i]);
}
Ich habe versucht, diesen Wert mit einem Python-Programm zu überprüfen

Code: Select all

import datetime

uint8_array = [25, 15, 142, 103, 0, 0, 0, 0]
#uint8_array = [72, 224, 87, 131, 148, 1, 0, 0]

timestamp_little_endian = int.from_bytes(uint8_array, byteorder='little')

human_readable_date_little_endian = datetime.datetime.utcfromtimestamp(timestamp_little_endian)

print(timestamp_little_endian, human_readable_date_little_endian)
Mit dem ersten uint8_array erhalte ich 1737363225 2025-01-20 08:53:45 und mit dem zweiten

Code: Select all

File "a.py", line 8, in 
human_readable_date_little_endian = datetime.datetime.utcfromtimestamp(timestamp_little_endian)
OSError: [Errno 22] Invalid argument
Was mache ich falsch?

Top