2 votes

iTerm2 Horodatage de l'historique en lecture humaine

Je peux voir toutes les commandes entrées dans iTerm en faisant ce qui suit :

$ sqlite3 ~/Library/Application\ Support/iTerm2/ShellHistory.sqlite

sqlite>  select * from ZCOMMANDHISTORYCOMMANDUSE;

Le résultat ressemble à ceci :

54171|1|1||22159|5120|642127758.695336|cat wolf_password|/Users/franks|6978AA30-BD92-4949-9C28-6B77F525DE51

La 7ème colonne ressemble à un horodatage en millisecondes mais ce n'est pas epoch, qui le serait : GMT: Tuesday, May 8, 1990 12:49:18.695 AM Ce qui est incorrect, cette commande a été exécutée au cours des deux dernières années.

Le schéma de la table montre :

sqlite> .schema ZCOMMANDHISTORYCOMMANDUSE
CREATE TABLE ZCOMMANDHISTORYCOMMANDUSE ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZCODE INTEGER, ZENTRY INTEGER, Z_FOK_ENTRY INTEGER, ZTIME FLOAT, ZCOMMAND VARCHAR, ZDIRECTORY VARCHAR, ZMARKGUID VARCHAR );
CREATE INDEX ZCOMMANDHISTORYCOMMANDUSE_ZENTRY_INDEX ON ZCOMMANDHISTORYCOMMANDUSE (ZENTRY);

C'est ZTIME FLOAT

Compte tenu de ce qui précède, quelle est la date et l'heure lisibles par l'homme ? 642127758.695336

0voto

fortran Points 26495

Votre commande a été exécutée le 8 mai 2021 à 00:49:18 UTC.

Si nous jetons un coup d'œil à la Code source de l'iTerm2 pour le stockage de l'historique, on remarque que now est défini comme suit :

- (NSTimeInterval)now {
    return [NSDate timeIntervalSinceReferenceDate];
}

Si nous regardons ensuite le NSDate documentation pour timeIntervalSinceReferenceDate on remarque qu'Apple utilise une époque différente de celle d'UNIX. Toute heure basée sur cette propriété calculera les secondes à partir du 1er janvier 2000 à 00:00 UTC.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X