Epoch-tijdconversietechnieken:
1. Datum naar tijd omzetten:
Om een datum en tijd om te zetten in een tijdperk binnen enkele seconden kunt u het `date` commando gebruiken met de ` +%s` optie.
Als u bijvoorbeeld de datum en tijd "1 januari 1970 00:00:00 UTC" wilt converteren naar tijd, gebruikt u de volgende opdracht:
```
$ datum --utc -d '1970-01-01 00:00:00 UTC' +%s
```
Deze opdracht levert de volgende epoch-tijd op:
```
0
```
2. Epochetijd naar datum converteren:
Om epochtijd naar een datum om te zetten en tijd kunt u het `date` commando gebruiken met de ` -d @` optie.
Als u bijvoorbeeld de tijdperktijd "0" wilt converteren naar een datum en tijd, gebruikt u de volgende opdracht:
```
$ datum -d @0
```
Deze opdracht levert de volgende datum en tijd op:
```
Do 1 januari 00:00:00 UTC 1970
```
3. Seconden optellen/aftrekken van/naar tijdvak:
Om seconden op te tellen of af te trekken vanaf tijdperk kunt u het `date` commando gebruiken met de ` -d @` en ` +%s` opties.
Als u bijvoorbeeld 60 seconden wilt toevoegen aan de tijd "0", gebruikt u de volgende opdracht:
```
$ datum -d @0 +%s
```
Deze opdracht levert de volgende epoch-tijd op:
```
60
```
Om 60 seconden af te trekken van de tijdvak "60", gebruikt u het volgende commando:
```
$ datum --date='@60 seconden' -u +%s
```
5. Converteer seconden naar datumformaat:
```
$ datum -d @1585233869
```
Om 1 dag (86.400 seconden) af te trekken van de epochtijd:
```
$ datum -d "nu - 1 dag" +%s
```
Hier zijn 13 beste voorbeelden van het converteren of wijzigen van tijdsperioden met behulp van het datumhulpprogramma op Linux of Unix:
1. Converteer datum naar tijdperk, rekening houdend met de tijdzone:
Als u bijvoorbeeld de datum en tijd "1 januari 1970 12:00:00 PM EST" wilt converteren naar een tijd in seconden, gebruikt u de volgende opdracht:
```
$ datum --datum '1970-01-01 12:00:00 EST' +%s
```
Hier wordt `date` gebruikt met de `--date` optie om een string die de datum en tijd vertegenwoordigt, om te zetten in de epoch-tijd. ` +%s` formatteert de uitvoer als het aantal seconden sinds 1 januari 1970, 00:00:00 UTC.
Deze opdracht levert de volgende epoch-tijd op:
```
3600
```
2. Epochetijd naar datum converteren, rekening houdend met UTC:
Als u bijvoorbeeld de tijdperktijd "1585233869" wilt converteren naar een datum en tijd in UTC-indeling, gebruikt u de volgende opdracht:
```
$ datum -ud @1585233869
```
In dit voorbeeld wordt de optie `-ud` gebruikt met het symbool `@` om de epochtijd van `1585233869` te interpreteren als een Unix-tijdstempel in UTC.
Deze opdracht levert de volgende datum en tijd op:
```
Zo 29 maart 18:24:29 UTC 2020
```
3. Epochetijd converteren naar lokale tijdzone:
Om tijdperktijd "1585233869" om te zetten naar een datum en tijd in een specifieke tijdzone, gebruikt u `date -d @1585233869 -T "timezone"`, waarbij u "tijdzone" vervangt door de gewenste tijdzone.
```
$ datum -d @1585233869 -T "Amerika/New_York"
```
Dit zou het volgende weergeven:
```
Zo 29 maart 13:24:29 EDT 2020
```
4. Datum converteren naar milliseconden (milliseconden sinds tijdperk):
Om een datum zoals '1 juli 2020, 12:30 PM' naar milliseconden te converteren, gebruik je `date +%s%3N`, waarbij `+%s` seconden sinds tijdvak is, en `%3N` 3 cijfers toevoegt voor milliseconden .
```
$ datum --datum '1 juli 2020, 12:30 uur' +%s%3N
```
Dit levert epoch milliseconden op:
```
1593630600992
```
5. Epoch millis omzetten naar voor mensen leesbare datum:
Om epoch millis, zoals 1593630600000, naar een datumtekenreeks te converteren, gebruikt u `date -d @epoch-millis +'%Y-%m-%d %H:%M:%S.%3N'`.
```
$ datum -d @1593630600000 +'%Y-%m-%d %H:%M:%S.%3N'
```
Uitgang:
```
01-07-2020 12:30:00.000
```
6. Haal de huidige datum en tijd op in een machinaal leesbaar formaat:
`date +%s%3N` geeft milliseconden van een tijdperk weer, handig bij het vergelijken van twee datums.
```
$ datum +%s%3N
```
Uitgang:
```
1593633240539
```
7. Dagen optellen bij of aftrekken van tijdperk:
`date -d @epoch-seconds +days` past de epoch-tijd aan met het opgegeven aantal dagen. Bijvoorbeeld:
```
$ datum -d @1593630600 +3 dagen
```
Uitgang:
```
Do 4 juli 12:30:00 EDT 2020
```
8. Trek datums af om het verschil te berekenen:
Om het verschil tussen twee datums te berekenen, zoekt u hun epoch-seconden en trekt u daarvan af. Bijvoorbeeld:
```
$ eindtijd=$(datum +%s)
$ start_time=$(datum -d "01-07-2019" +%s)
$ verschil_in_seconden=$((eindtijd - start_tijd ))
```
9. Tijdsintervallen optellen of aftrekken:
Om specifieke intervallen, zoals 5 uur en 30 minuten, toe te voegen aan of af te trekken van een bepaalde tijdsperiode, gebruikt u:
```
$ datum -d @1593630600 +5 uur -30 minuten
```
Uitgang:
```
Vr 2 juli 12:00:00 EDT 2020
```
10. Tel datum tot toekomstig evenement:
Om te bepalen hoe lang het duurt tot een specifieke datum in de toekomst, converteert u beide relevante datums naar epochseconden en berekent u het verschil. Bijvoorbeeld:
```
$ end_time=$(datum -d "25-12-2021 00:00" +%s)
$ starttijd=$(datum +%s)
$ seconden_tot_Kerstmis=$((eindtijd - begin_tijd ))
```
11. Tel datums sinds afgelopen evenement:
Op dezelfde manier zou het tellen van het aantal dagen sinds een gebeurtenis zoals een verjaardag inhouden dat de epoch-seconden van de gebeurtenisdatum worden afgetrokken van de huidige datum:
```
$ verjaardag=$(datum -d "01-09-1999" +%s)
$ huidige_tijd=$(datum +%s)
$ days_since_birthday=$(((huidige_tijd - verjaardag)/(60*60*24) ))
```
12. Genereer willekeurige tijd:
Gebruik de volgende opdracht om een willekeurige tijdstempel binnen een opgegeven datumbereik te maken:
```
$ min_time=$(datum -d "01-07-2019" +%s)
$ max_time=$(datum -d "31-07-2020" +%s)
$ willekeurige_tijd=$(shuf -i $min_time-$max_time -n1)
$ datum -d @$random_time
```
13. Voor mensen leesbare tijdspannes omzetten in seconden:
Om tijdberekeningen te vereenvoudigen, converteert u voor mensen leesbare tijdspannes naar seconden met behulp van de `expr`-calculator:
```
$ seconden_5_uren=$(expr 5 \* 60 \* 60)
$ datum +%s -d "nu - $seconds_5_hours seconden"
```
Hierdoor wordt de huidige datum/tijd weergegeven, verminderd met 5 uur:
```
Vr 9 juli 15:02:20 EDT 2021
```
Houd er rekening mee dat bij tijdgerelateerde berekeningen het selecteren van de juiste tijdzone cruciaal is om nauwkeurige resultaten te garanderen. |