Epoketidskonverteringsteknikker:
1. Konverter dato til epoketid:
For å konvertere en dato og tid til epoketid i sekunder kan du bruke `dato`-kommandoen med alternativet ` +%s`.
For eksempel, for å konvertere datoen og klokkeslettet "1. januar 1970 00:00:00 UTC" til epoketid, bruker du følgende kommando:
```
$ date --utc -d '1970-01-01 00:00:00 UTC' +%s
```
Denne kommandoen vil gi ut følgende epoketid:
```
0
```
2. Konverter epoketid til dato:
For å konvertere epoketid til en dato og tid, kan du bruke `date`-kommandoen med alternativet ` -d @`.
For eksempel, for å konvertere epoketiden "0" til en dato og tid, bruker du følgende kommando:
```
$ dato -d @0
```
Denne kommandoen vil gi ut følgende dato og klokkeslett:
```
Tors 1. januar 00:00:00 UTC 1970
```
3. Legg til/trekk fra sekunder til/fra epoketid:
For å legge til eller trekke fra sekunder fra epoketid kan du bruke `dato`-kommandoen med alternativene ` -d @` og ` +%s`.
For å legge til 60 sekunder til epoketiden "0", bruker du for eksempel følgende kommando:
```
$ dato -d @0 +%s
```
Denne kommandoen vil gi ut følgende epoketid:
```
60
```
For å trekke 60 sekunder fra epoketiden "60", bruker du følgende kommando:
```
$ date --date='@60 sekunder' -u +%s
```
5. Konverter sekunder til datoformat:
```
$ dato -d @1585233869
```
For å trekke 1 dag (86400 sekunder) fra epoketid:
```
$ date -d "nå - 1 dag" +%s
```
Her er 13 beste eksempler på konvertering eller endring av tidsepoke ved å bruke datoverktøyet på Linux eller Unix:
1. Konverter dato til epoketid, med tanke på tidssone:
For eksempel, for å konvertere datoen og klokkeslettet "1. januar 1970 12:00:00 PM EST" til epoketid i sekunder, bruker du følgende kommando:
```
$ dato --dato '1970-01-01 12:00:00 EST' +%s
```
Her brukes `date` med `--date`-alternativet for å konvertere en streng som representerer dato og klokkeslett til epoketiden. ` +%s` formaterer utdataene som antall sekunder siden 1. januar 1970, 00:00:00 UTC.
Denne kommandoen vil gi ut følgende epoketid:
```
3600
```
2. Konverter epoketid til dato, med tanke på UTC:
For eksempel, for å konvertere epoketiden "1585233869" til en dato og et klokkeslett i UTC-format, bruker du følgende kommando:
```
$ date -ud @1585233869
```
I dette eksemplet brukes «-ud»-alternativet med «@»-symbolet for å tolke epoketiden til «1585233869» som et Unix-tidsstempel i UTC.
Denne kommandoen vil gi ut følgende dato og klokkeslett:
```
Søn 29. mars 18:24:29 UTC 2020
```
3. Konverter epoketid til lokal tidssone:
For å konvertere epoketid "1585233869" til en dato og tid i en spesifikk tidssone, bruk `date -d @1585233869 -T "timezone"`, og bytt ut "tidssone" med ønsket tidssone.
```
$ date -d @1585233869 -T "America/New_York"
```
Dette vil vise:
```
Søn 29. mars 13:24:29 EDT 2020
```
4. Konverter dato til epoke millis (millisekunder siden epoke):
For å konvertere en dato som «1. juli 2020, 12:30 PM» til millisekunder, bruk «dato +%s%3N», der «+%s» er sekunder siden epoken, og «%3N» legger til 3 sifre for millisekunder .
```
$ date --dato '1. juli 2020, 12:30' +%s%3N
```
Dette gir ut epoke millisekunder:
```
1593630600992
```
5. Konverter epoke millis til menneskelig lesbar dato:
For å konvertere epokemilli, som 1593630600000, til en datostreng, bruk `date -d @epoch-millis +'%Y-%m-%d %H:%M:%S.%3N'`.
```
$ date -d @1593630600000 +'%Y-%m-%d %H:%M:%S.%3N'
```
Produksjon:
```
2020-07-01 12:30:00.000
```
6. Få gjeldende dato og klokkeslett i maskinlesbart format:
`dato +%s%3N` viser epoke millisekunder, nyttig når du sammenligner to datoer.
```
$-dato +%s%3N
```
Produksjon:
```
1593633240539
```
7. Legg til eller trekk fra dager fra epoke:
`date -d @epoch-seconds +days` justerer epoketiden med det angitte antall dager. For eksempel:
```
$ dato -d @1593630600 +3 dager
```
Produksjon:
```
Tors 4. juli 12:30:00 EDT 2020
```
8. Strekk fra datoer for å beregne differansen:
For å beregne forskjellen mellom to datoer, finn epokesekunder og trekk fra. For eksempel:
```
$ end_time=$(dato +%s)
$ start_time=$(dato -d "2019-07-01" +%s)
$ difference_in_seconds=$(( sluttid - starttid ))
```
9. Legg til eller trekk fra tidsintervaller:
For å legge til eller trekke fra spesifikke intervaller som 5 timer og 30 minutter fra en gitt epoketid, bruk:
```
$ dato -d @1593630600 +5 timer -30 minutter
```
Produksjon:
```
Fre 2. juli 12:00:00 EDT 2020
```
10. Telledato til fremtidig hendelse:
For å finne ut hvor lenge det er til en bestemt dato i fremtiden, konverter begge relevante datoene til epokesekunder og beregne forskjellen. For eksempel:
```
$ end_time=$(dato -d "2021-12-25 00:00" +%s)
$ start_time=$(dato +%s)
$ seconds_until_Christmas=$(( sluttid - starttid ))
```
11. Telle datoer siden tidligere hendelse:
På samme måte vil å telle antall dager siden en begivenhet som en bursdag innebære å trekke epokesekunderne av hendelsesdatoen fra gjeldende dato:
```
$ bursdag=$(dato -d "1999-09-01" +%s)
$ current_time=$(dato +%s)
$ days_since_birthday=$(((nåværende_tid - bursdag)/(60*60*24) ))
```
12. Generer tilfeldig epoketid:
For å lage et tilfeldig tidsstempel innenfor en spesifisert datoperiode, bruk følgende kommando:
```
$ min_time=$(dato -d "2019-07-01" +%s)
$ max_time=$(dato -d "2020-07-31" +%s)
$ random_time=$(shuf -i $min_time-$max_time -n1)
$ dato -d @$random_time
```
13. Konverter menneskelig lesbare tidsrom til sekunder:
For å forenkle tidsberegninger, konverter menneskelesbare tidsrom til sekunder ved å bruke "expr"-kalkulatoren:
```
$ sekunder_5_timer=$(utløp 5 \* 60 \* 60)
$ date +%s -d "nå - $seconds_5_hours seconds"
```
Dette viser gjeldende dato/tid redusert med 5 timer:
```
Fre 9. juli 15:02:20 EDT 2021
```
Husk at når du arbeider med tidsrelaterte beregninger, er det avgjørende å velge riktig tidssone for å sikre nøyaktige resultater.