lu.se

Datavetenskap

Lunds Tekniska Högskola

Denna sida på svenska This page in English

time / date

Förutom vanlig ”epoc”-tid (bas: 1970-01-01), använder OS X ”Mac absolute time” (CFAbsoluteTime; double) som är antalet sekunder relativt 2001-01-01 00:00:00 GMT. Detta värde kan vara både positivt (senare än 2001-01-01) och negativt (före 2001-01-01).
Skillnaden mellan epoch och CFAbsoluteTime är 978307200 sekunder.

För att få aktuell tid i epoch-tid:
date +%s

För att få epoch-tid till läsbar form:
date -r 1440139192


Exempel: Safari's History.db

Safari före OS X 10.9 Mavericks sparade historiken i en plist-fil med tiden i epoch-format. Numera är det en sqlite-databas, ~/Library/Safari/History.db. Om man t.ex. vill få ut läsbara tider (tillsammans med löpnummer och sidans titel) ur Safaris History.db, startar man sqlite3, öppnar filen (.open History.db) och skriver sedan:

SELECT id,datetime(visit_time+978307200, 'unixepoch', 'localtime'),title FROM history_visits;

Man får då utskrift som denna:
3165|2015-03-09 09:24:08|internt: sök ”lu byggnad” :: Search - Lunds universitet

Vill man se även den URL som anropades, skriver man:

SELECT history_visits.id,datetime(history_visits.visit_time+978307200, 'unixepoch', 'localtime'),history_visits.title,history_items.url
FROM history_items INNER JOIN history_visits
ON history_visits.id = history_items.id;

Man får då utskrift som:
3165|2015-03-09 09:24:08|internt: sök ”lu byggnad” :: Search - Lunds universitet|https://zero.comaround.com/sv-se/search/content/126621/
Av skäl som undgår mig är det inte säkert att resultatet är lika omfattande, d.v.s. de två tabellerna, history_visits och history_items, innehåller olika mycket material!


Exempel: Safari's nedladdningshistoria

För att se vilka filer man har laddat ner i Safari kan man skriva följande:
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
sedan:
SELECT datetime(LSQuarantineTimeStamp+978307200, 'unixepoch', 'localtime'),LSQuarantineDataURLString,LSQuarantineOriginURLString FROM LSQuarantineEvent;

Man får då utskrift som:
2015-08-10 08:27:49|https://admdownload.adobe.com/bin/live/AdobeFlashPlayer_18_a_install.dmg|https://get.adobe.com/


Ovanstående två exempel kan vara bra att känna till när man gör forensics på en misstänkt dator och behöver reda ut när en webbsida laddades. Notera att även om Safaris webbläsarhistorik är rensad, finns informationen kvar i History.db!

Notera dock två saker:
1. De allra senaste webbaktiviteterna kanske inte finns i History.db [ännu?]. Mekanismen bakom detta är oklar
2. Om Safari är igång är denna filen låst och man kommer inte att se någonting. Det räcker dock att göra en kopia av History.db (även om Safari är igång) så kan man arbeta med den!

strftime

Timme:
Exempel:
%Htimmen (24-timmarsklocka) som decimaltal (00-23) 
%ktimmen (24-timmarsklocka) som decimaltal (0-23); enkelsiffror föregås av ” ” 
%Itimmen (24-timmarsklocka) som decimaltal (01-12) 
%ltimmen (24-timmarsklocka) som decimaltal (1-12); enkelsiffror föregås av ” ” 
 
Minut:

Exempel:
%Mminuten som decimaltal (00-59) 

Sekund:

Exempel:
%Ssekunden som decimaltal (00-60) 
%santal sekunder sedan Epoch, UTC 

Dag:

Exempel:
%ddagen i månaden som decimaltal (01-31) 
%edagen i månaden som decimaltal (1-31); enkelsiffor föregås av ” ” 
%Adagens lokala långa namnFredag
%adagens lokala korta namnFre
%jdagens årsnummer som decimaltal (001-366)352
%wveckodagen (söndag första dagen i veckan) som decimaltal (0-6) 
%uveckodagen (måndag första veckodag) som decimaltal (1-7) 

Vecka:

Exempel:
%Uveckonumret (söndag första veckodag) som decimaltal (00-53) 
%Wveckonumret (måndag första veckodag) som decimaltal (00-53) 
%Vveckonumret (måndag första veckodag) som decimaltal (01-53). Om veckan med 1 januari i har ≥ 4 dagar på det nya året är det vecka 1 annars är nästa vecka vecka 1 

Månad:
 
%Bmånadens lokala långa namnDecember
%bmånadens lokala korta namnDec
%mmånaden som decimaltal (01-12)12

År:

Exempel:
%C(år / 100) som decimaltal; enkelsiffror föregås av 020
%G
%Y
året som decimaltal med fyra siffror2012
%g
%y
året som decimaltal med två siffror12

Blandat:

Exempel:
%F= ”%Y-%m-%d”2012-12-13
%R= ”%H:%M”08:24
%r= ”%I:%M:%S %p”08:25:11 am
%T= ”%H:%M:%S”08:25:33
%nradmatning 
%ttabb 
%clokal representation av datum och tidTor 13 Dec 08:25:58 2012
%plokal variant av ”ante meridiem” (a.m.) / ”post meridiem” (p.m.) 
%Xlokal variant av tiden08:27:23
%xlokal representation av datum13.12.2012
%+lokal variant av datum och tid (samma som kommandot date)Tor 13 Dec 2012 08:28:10 CET
%Ztidssonens namnCET
%ztidszonens skillnad mot UTC+0100