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

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

Post by Guest »

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post