Epoketidskonverteringsteknikker:
1. Konverter dato til epoketid:
At konvertere en dato og tid til epoketid på sekunder kan du bruge kommandoen `dato` med muligheden ` +%s`.
For eksempel, for at konvertere datoen og klokkeslættet "1. januar 1970 00:00:00 UTC" til epoketid, skal du bruge følgende kommando:
```
$ date --utc -d '1970-01-01 00:00:00 UTC' +%s
```
Denne kommando udsender følgende epoketid:
```
0
```
2. Konverter epoketid til dato:
At konvertere epoketid til en dato og tid, kan du bruge kommandoen `dato` med muligheden ` -d @`.
For eksempel, for at konvertere epoketiden "0" til en dato og tid, skal du bruge følgende kommando:
```
$ dato -d @0
```
Denne kommando udsender følgende dato og klokkeslæt:
```
tor 1. januar 00:00:00 UTC 1970
```
3. Tilføj/træk fra sekunder til/fra epoketid:
For at tillægge eller trække sekunder fra fra epoketid kan du bruge kommandoen `dato` med valgmulighederne ` -d @` og ` +%s`.
For eksempel, for at tilføje 60 sekunder til epoketiden "0", ville du bruge følgende kommando:
```
$ dato -d @0 +%s
```
Denne kommando udsender følgende epoketid:
```
60
```
For at trække 60 sekunder fra epoketiden "60", ville du bruge følgende kommando:
```
$ date --date='@60 sekunder' -u +%s
```
5. Konverter sekunder til datoformat:
```
$ dato -d @1585233869
```
For at trække 1 dag (86400 sekunder) fra epoketid:
```
$ date -d "nu - 1 dag" +%s
```
Her er 13 bedste eksempler på konvertering eller ændring af tidsepoke ved hjælp af datoværktøjet på Linux eller Unix:
1. Konverter dato til epoketid under hensyntagen til tidszone:
For eksempel, for at konvertere datoen og klokkeslættet "1. januar 1970 12:00:00 PM EST" til epoketid i sekunder, skal du bruge følgende kommando:
```
$ dato --dato '1970-01-01 12:00:00 EST' +%s
```
Her bruges `dato` med muligheden `--date` til at konvertere en streng, der repræsenterer dato og klokkeslæt, til epoketiden. ` +%s` formaterer output som antallet af sekunder siden 1. januar 1970, 00:00:00 UTC.
Denne kommando udsender følgende epoketid:
```
3600
```
2. Konverter epoketid til dato under hensyntagen til UTC:
For eksempel, for at konvertere epoketiden "1585233869" til en dato og tid i UTC-format, skal du bruge følgende kommando:
```
$ dato -ud @1585233869
```
I dette eksempel bruges "-ud"-indstillingen med "@"-symbolet til at fortolke epoketiden for "1585233869" som et Unix-tidsstempel i UTC.
Denne kommando udsender følgende dato og klokkeslæt:
```
Søn 29. marts 18:24:29 UTC 2020
```
3. Konverter epoketid til lokal tidszone:
For at konvertere epoketid "1585233869" til en dato og et klokkeslæt i en bestemt tidszone, skal du bruge `dato -d @1585233869 -T "tidszone"`, og erstatte "tidszone" med din ønskede tidszone.
```
$ date -d @1585233869 -T "America/New_York"
```
Dette ville vise:
```
Søn 29. marts 13:24:29 EDT 2020
```
4. Konverter dato til epoke millis (millisekunder siden epoke):
For at konvertere en dato som "1. juli 2020, 12:30 PM" til millisekunder, skal du bruge `dato +%s%3N`, hvor `+%s` er sekunder siden epoke, og `%3N` tilføjer 3 cifre for millisekunder .
```
$ date --dato '1. juli 2020, 12:30 PM' +%s%3N
```
Dette udsender epoke millisekunder:
```
1593630600992
```
5. Konverter epoke millis til menneskelig læsbar dato:
For at konvertere epokemilli, som 1593630600000, til en datostreng, skal du bruge `date -d @epoch-millis +'%Y-%m-%d %H:%M:%S.%3N'`.
```
$ date -d @1593630600000 +'%Y-%m-%d %H:%M:%S.%3N'
```
Produktion:
```
2020-07-01 12:30:00.000
```
6. Få aktuel dato og tid i maskinlæsbart format:
`dato +%s%3N` viser epoke millisekunder, nyttigt ved sammenligning af to datoer.
```
$-dato +%s%3N
```
Produktion:
```
1593633240539
```
7. Tilføj eller træk dage fra epoke:
`date -d @epoch-seconds +days` justerer epoketiden med det angivne antal dage. For eksempel:
```
$ dato -d @1593630600 +3 dage
```
Produktion:
```
Torsdag 4. juli 12:30:00 EDT 2020
```
8. Træk datoer fra for at beregne forskellen:
For at beregne forskellen mellem to datoer skal du finde deres epokesekunder og trække fra. For eksempel:
```
$ end_time=$(dato +%s)
$ start_time=$(dato -d "2019-07-01" +%s)
$ difference_in_seconds=$(( sluttidspunkt - starttidspunkt ))
```
9. Tilføj eller subtraher tidsintervaller:
For at tilføje eller trække specifikke intervaller, såsom 5 timer og 30 minutter fra en given epoketid, skal du bruge:
```
$ dato -d @1593630600 +5 timer -30 minutter
```
Produktion:
```
Fre 2. juli 12:00:00 EDT 2020
```
10. Tælle dato indtil fremtidig begivenhed:
For at bestemme, hvor lang tid der går til en bestemt dato i fremtiden, skal du konvertere begge relevante datoer til epokesekunder og beregne forskellen. For eksempel:
```
$ end_time=$(dato -d "2021-12-25 00:00" +%s)
$ start_time=$(dato +%s)
$ sekunder_til_jul=$(( sluttidspunkt - starttidspunkt ))
```
11. Tæller datoer siden tidligere begivenhed:
På samme måde ville tælle antallet af dage siden en begivenhed som en fødselsdag indebære at trække epokesekunderne af begivenhedsdatoen fra den aktuelle dato:
```
$ fødselsdag=$(dato -d "1999-09-01" +%s)
$ nuværende_tid=$(dato +%s)
$ days_since_birthday=$(((aktuelt_tidspunkt - fødselsdag)/(60*60*24) ))
```
12. Generer tilfældig epoketid:
For at oprette et tilfældigt tidsstempel inden for et angivet datointerval skal du bruge 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 tidsrum, der kan læses af mennesker, til sekunder:
For at forenkle tidsberegninger skal du konvertere tidsrum, der kan læses af mennesker, til sekunder ved hjælp af "expr"-beregneren:
```
$ sekunder_5_timer=$(udg. 5 \* 60 \* 60)
$ date +%s -d "nu - $seconds_5_hours sekunder"
```
Dette udsender den aktuelle dato/tid reduceret med 5 timer:
```
Fre 9. jul 15:02:20 EDT 2021
```
Husk, at når du beskæftiger dig med tidsrelaterede beregninger, er det afgørende at vælge den passende tidszone for at sikre nøjagtige resultater.