Konfiguration av datum och tid
Moderna operativsystem skiljer mellan följande två typer av klockor:
-
En realtidsklocka (RTC, Real-Time Clock), vanligen benämnd som en hårdvaruklocka, (vanligtvis en integrerad krets på moderkortet) som är helt oberoende av det aktuella tillståndet för operativsystemet och går även när datorn är avstängd.
-
En systemklocka även känd som programvaruklocka, som hanteras utav kärnan och dess initiala värde baseras på realtidsklockan. När väl systemet startats och systemklockan initierats är programvaruklockan helt oberoende av realtidsklockan.
Systemtiden hålls alltid i Coordinated Universal Time (UTC) och konverteras i program till lokaltiden vid behov. Lokaltid är den faktiska tiden i ens aktuella tidszon, och tar hänsyn till sommartid (DST). Realtidsklockan kan antingen använda UTC eller lokaltid. UTC rekommenderas.
Fedora 32 erbjuder tre kommandoradsverktyg som kan användas för att konfigurera och visa information om systemets datum och tid: verktyget timedatectl, vilket är nytt i Fedora 32 och är en del av systemd
; det traditionella kommandot date och verktyget hwclock för att komma åt hårdvaruklockan.
Att använda kommandot timedatectl
Verktyget timedatectl distribueras som en del av system- och tjänstehanteraren systemd
och gör att man kan granska och ändra konfigurationen av systemklockan. Man kan använda detta verktyg för att ändra det aktuella datumet och den aktuella tiden, ställa in tidszonen eller aktivera automatisk synkronisering av systemklockan med en fjärrserver.
För information om hur man visar det aktuella datumet och den aktuella tiden, se även Att använda kommandot date.
Att visa det aktuella datumet och den aktuella tiden
För att visa aktuellt datum och tid tillsammans med detaljerad information om konfigurationen av systemet och hårdvaruklockan, kör kommandot timedatectl utan några ytterligare kommandoradsflaggor:
timedatectl
Detta visar den lokala och universella tiden, den nu valda tidszonen, statusen för konfiguration av nätverkstidsprotokollet (NTP
) ocy ytterligare information relaterat till sommartid.
Följande är en exempelutmatning från kommandot timedatectl på ett system som inte använder NTP
för att synkronisera systemklockan med en fjärrserver:
$ timedatectl Local time: tis 2022-07-12 10:30:56 CEST Universal time: tis 2022-07-12 08:30:56 UTC RTC time: tis 2022-07-12 08:30:56 Time zone: Europe/Stockholm (CEST, +0200) System clock synchronized: yes NTP service: inactive RTC in local TZ: no
Att ändra aktuell tid
För att ändra den aktuella tiden, skriv följande vid en skalprompt som root
:
timedatectl [option] set-time
HH:MM:SS
Ersätt HH med en timme, MM med en minut och SS med en sekund, allt skrivet med två siffror.
Detta kommando uppdaterar både systemtiden och hårdvaruklockan. Restultatet är snarlikt att använda de båda kommandona date --set och hwclock --systohhc.
Kommandot kommer misslyckas om en `NTP`tjänst är aktiverad. Se Att synkronisera systemklockan med en fjärrserver för att tillfälligt avaktivera tjänsten.
För att ändra aktuell tid till 23:26, kör följande kommando som root
:
~]# timedatectl set-time 23:26:00
Som standard konfigureras systemet till att använda UTC. För att konfigurera systemet till att hålla klockan i den lokala tiden, kör kommandot timedatectl med argumentet set-local-rtc
som root
:
timedatectl set-local-rtc
boolean
För att konfigurera systemet till att hålla klockan i den lokala tiden, ersätt boolean med yes
(eller, alternativt, y
, true
, t
eller 1
). För att konfigurera systemet till att använda UTC, ersätt boolean med no
(eller, alternativt, n
, false
, f
eller 0
). Standardalternativet är no
.
Att byta aktuellt datum
För att ändra det aktuella datumet, skriv följande vid en skalprompt som root
:
timedatectl set-time
ÅÅÅÅ-MM-DD
Ersätt ÅÅÅÅ med året med fyra siffror, MM med en tvåsiffrig månad och DD med en tvåsiffrig dag i månaden.
Observera att genom att ändra datumet utan att ange aktuell tid resulterar i att ställa tiden till 00.00.00.
För att ändra aktuellt datum till den 2 juni 2013 och behålla den aktuella tiden (23.26), kör följande kommando som root
:
~]# timedatectl set-time "2013-06-02 23:26:00"
Att ändra tidszonen
För att räkna upp alla tillgängliga tidszoner, skriv följande vid en skalprompt:
timedatectl list-timezones
För att ändra den använda tidszonen, skriv som root
:
timedatectl set-timezone tidszon
Ersätt tidszon med någon av de värden som räknades upp av kommandot timedatectl list-timezones.
För att identifiera vilken tidszon som är närmast till den aktuella platsen, använd kommandot timedatectl med kommandoradsflaggan list-timezones
. Till exempel, för att räkna upp alla tillgängliga tidszoner i Europa, skriv:
~]# timedatectl list-timezones | grep Europe Europe/Amsterdam Europe/Andorra Europe/Athens Europe/Belgrade Europe/Berlin Europe/Bratislava …
För att ändra tidszon till Europe/Stockholm
, skriv som root
:
~]# timedatectl set-timezone Europe/Stockholm
Att synkronisera systemklockan med en fjärrserver
Till skillnad mot de manuella justeringarna som beskrivs i det föregående avsnittet gör kommandot timedatectl även att man kan aktivera automatisk synkronisering av systemklockan med en grupp av fjärrservrar med protokollet NTP
. Att aktivera NTP aktiverar tjänsten chronyd
eller ntpd
, beroende på vilken av dem som är installerad.
Tjänsten NTP
kan aktiveras och avaktiveras med ett kommando enligt följande:
timedatectl set-ntp
boolean
För att aktivera att systemet synkroniserar systemklockan med en fjärr-NTP
-server, ersätt boolean med yes
(standardflaggan). För att avaktivera denna funktion, ersätt boolean mes no
.
För att aktivera automatisk synkronisering av systemklockan med en fjärrserver, skriv:
~]# timedatectl set-ntp yes
Kommandot kommer misslyckas om ingen NTP
-tjänst är installerad. Se Att installera chrony för mer information.
Att använda kommandot date
Verktyget date är tillgängligt på alla Linuxsystem och gör att man kan visa och konfigurera aktuellt datum och aktuell tid. Det används ofta i skript för att visa detaljerad information om systemklockan i ett anpassat format.
För information om hur man ändrar tidszonen eller aktiverar automatisk synkronisering av systemklockan med en fjärrserver, se Att använda kommandot timedatectl.
Att visa det aktuella datumet och den aktuella tiden
För att visa aktuellt datum och aktuell tid, kör kommandot date utan några ytterligare kommandoradsflaggor:
date
Detta visar veckodagen följt av aktuellt datum, lokaltid, förkortad tidszon och år.
Som standard visar kommandot date lokaltiden. För att visa tiden i UTC, kör kommandot med kommandoradsflaggan --utc
eller -u
:
date --utc
Man kan också anpassa formatet på den visade informationen genom att ge flaggan [option]`+"format"`på kommandoraden:
date +"format"
Ersätt format med en eller flera av de stödda styrsekvenserna så som det illustreras i Att visa det aktuella datumet och den aktuella tiden. Se Vanligen använda styrsekvenser för en lista över de vanligen oftast använda alternativen, eller manualsidan date
(1) för en fullständig lista över dessa alternativ.
Styrsekvens | Beskrivning |
---|---|
|
Timme i formatet HH (till exampel, |
|
Minut i formatet MM (till exampel, |
|
Sekund i formatet SS (till exampel, |
|
Dag i månaden i formatet DD (till exampel, |
|
Månad i formatet MM (till exampel, |
|
År i formatet ÅÅÅÅ (till exampel, |
|
Tidszonsförkortning (till exampel, |
|
Fullständigt datum i formatet ÅÅÅÅ-MM-DD (till exampel, |
|
Fullständig tid i formatet HH:MM:SS (till exampel, 17:30:24). Detta alternativ är samma som |
För att visa aktuellt datum och tid lokalt, skriv följande vid en skalprompt:
~]$ date
tor 14 jul 2022 20:59:56 CEST
För att visa aktuellt datum och tid i UTC, skriv följande vid en skalprompt:
~]$ date --utc
tor 14 jul 2022 18:59:56 UTC
För att anpassa utdata från kommandot date, skriv:
~]$ date +"%Y-%m-%d %H:%M" 2022-07-14 20:59
Att ändra aktuell tid
För att ändra aktuell tid, kör kommandot date med flaggan --set
eller -s
som root
:
date --set
HH:MM:SS
Ersätt HH med en timme, MM med en minut och SS med en sekund, allt skrivet med två siffror.
Som standard ställer kommandot date klockan till den lokala tiden. För att ställa klockan i i UTC, kör kommandot med kommandoradsflaggan --utc
eller -u
:
date--set
HH:MM:SS--utc
För att ändra aktuell tid till 23:26, kör följande kommando som root
:
~]# date --set 20:59:56
Att byta aktuellt datum
För att ändra aktuell datum, kör kommandot date med flaggan --set
eller -s
som root
:
date --set
ÅÅÅÅ-MM-DD
Ersätt ÅÅÅÅ med året med fyra siffror, MM med en tvåsiffrig månad och DD med en tvåsiffrig dag i månaden.
Observera att genom att ändra datumet utan att ange aktuell tid resulterar i att ställa tiden till 00.00.00.
För att ändra aktuellt datum till den 2 juni 2013 och behålla den aktuella tiden (23.26), kör följande kommando som root
:
~]# date --set 2022-07-14 20:59:56
Att använda kommandot hwclock
hwclock
är ett verktyg för att komma åt hårdvaruklockan, även känd som realtidsklockan (Real Time Clock, RTC). Hårdvaruklockan är oberoende av operativsystemen man använder och fungerar även när maskinen är avstängd. Detta verktyg används för att visa tiden från hårdvaruklockan. hwclock
har också funktioner för att kompensera för systematisk avdrift i hårdvaruklockan.
Hårdvaruklockan lagrar värdena på: år, månad, dag, timme, minut och sekund. Den kan inte lagra tidsstandarden, lokaltid eller Coordinated Universal Time (UTC), eller ange sommartiden (Daylight Saving Time, DST).
Verktyget hwclock
sparar sina inställningar i filen /etc/adjtime
, vilken skapas när man gör sin första ändring, till exempel, när man ställer tiden manuellt eller synkroniserar hårdvaruklockan och systemtiden.
I Fedora 6 kördes kommandot hwclock automatiskt vid varje avstängning eller uppstart av systemet, men det görs inte i Fedora 32. När systemklockan synkroniseras av nätverkstidsprotokollet (Network Time Protocol, NTP) eller precisionstidsprotokollet (Precision Time Protocol, PTP) synkroniserar kärnan automatiskt hårdvaruklockan med systemklockan var 11:e minut. |
För detaljer om NTP, se Att konfigurera NTP med sviten chrony och Att konfigurera NTP med ntpd. För information om PTP, se Att konfigurera PTP med ptp4l. För information om att ställa in hårdvaruklockan efter att ha kört ntpdate, se Att konfigurera uppdatering av hårdvaruklockan.
Att visa det aktuella datumet och den aktuella tiden
Att köra hwclock utan några kommandoradsflaggor som användaren root
returnerar datum och tid i lokal tid till standard ut.
hwclock
Observera att flaggorna --utc
eller hwclock betyder inte att man visar hårdvaruklockans tid i UTC eller lokal tid. Dessa flaggor använd för att ställa in hårdvaruklockan till att ha tiden i endera av dem. Tiden visas alltid i lokal tid. Dessutom, att använda kommandona hwclock --utc eller hwclock --local ändrar inte den lagrade inställning i filen /etc/adjtime
. Detta kommando kan vara användbart när man vet att den sparade inställningen i /etc/adjtime
är felaktig men man inte vill ändra inställningen. Å andra sidan kan man få missledande information om man använder kommandot på fel sätt. Se manualsidan hwclock
(8) för fler detaljer.
För att visa aktuellt datum och tid i den lokala tiden från hårdvaruklockan, kör som root
:
~]# hwclock 2022-07-16 10:35:20.843111+02:00
CEST är en tidszonsförkortning och står för Central European Summer Time.
För information om hur man ändrar tidszonen, se Att ändra tidszonen.
Att ställa in datum och tid
Förutom att visa datum och tid kan man manuellt ställa hårdvaruklockan till en specifik tid.
När man behöver ändra hårdvaruklockans datum och tid kan man göra det genom att lägga till flaggorna --set
och --date
tillsammans med sin speicifikation:
hwclock --set --date "ÅÅÅÅ-mm-dd HH:MM"
Ersätt dd med en dag (ett tvåsiffrigt tal), mm med en månad (ett tvåsiffrigt tal), ÅÅÅÅ med ett år (ett fyrsiffrigt tal), HH med en timma (ett tvåsiffrigt tal), MM med en minut (ett tvåsiffrigt tal).
På samma gång kan man även ställa in hårdvaruklockan till att hålla tiden i antingen UTC eller lokal tid genom att lägga till flaggan --utc
respektive --localtime
. I så fall sparas UTC
eller LOCAL
i filen /etc/adjtime
.
If you want to set the date and time to a specific value, for example, to "21:17, October 21, 2014", and keep the hardware clock in UTC, run the command as root
in the following format:
~]# hwclock --set --date "2022-07-18 23:20" --utc
Att synkronisera datum och tid
Man kan synkronisera hårdvaruklockan och den aktuella systemtiden i båda riktningar.
-
Antingen kan man ställa hårdvaruklockan till den aktuella systemtiden genom att använda detta kommando:
hwclock --systohc
Observera att om man använder NTP synkroniserar hårdvaruklockan automatiskt med systemklockan var 11 minut, och detta kommando är endast användbart vid uppstart för att få en rimlig initial systemtid.
-
Eller så kan man ställa systemtiden från hårdvaruklockan genom att använda följande kommando:
hwclock --hctosys
När man synkroniserar hårdvaruklockan och systemtiden kan man också specificera huruvida man vill hålla hårdvaruklockan i lokal tid eller UTC genom atat lägga till flaggan --utc
eller --localtime
. Likson när man använder --set
kommer UTC
ellerr LOCAL
sparas i filen /etc/adjtime
.
Kommandot hwclock --systohc --utc är funktionellt likvärdigt med kommandot timedatectl set-local-rtc false ock kommandot hwclock --systohc --local är ett alternativ till timedatectl set-local-rtc true.
För att ställa hårdvaruklockan till den aktuella systemtiden och hålla hårdvaruklockan i lokal tid, kör följande kommando som root
:
~]# hwclock --systohc --localtime
För att undvika problem med byte av tidszon och sommartid rekommenderas det att hålla hårdvaruklockan till UTC. Det visade sättet Att synkronisera hårdvaruklockan med systemtiden är användbart, till exempel, i lägen med flervalsstart med ett Windows-system, vilket antar att hårdvaruklockan kör i lokal tid som standard, och då även alla andra system behöver anpassa sig till det genom att använda lokal tid. Det kan även behövas med en virtuell maskin; om den virtuella hårdvaruklockan som tillhandahålls av värden kör i lokal tid behöver gästsystem konfigureras att också använda lokal tid.
Ytterligare resurser
För mer information om hur man konfigurerar datum och tid i Fedora 32, se resurserna listade nedan.
-
timedatectl
(1) — Manualsidan för kommandoradsverktyget timedatectl dokumenterar hur detta verktyg kan användas för att fråga om och ändra systemklockan och dess inställningar. -
date
(1) — Manualsidan för kommandot date ger en fullständig lista över kommandoradsargument som stödjs. -
hwclock
(8) — Manualsidan för kommandot date ger en fullständig lista över kommandoradsargument som stödjs.
-
Systemlokal och tangentbordskonfiguration dokumenterar hur man konfigurerar tangentbordslayouten.
Want to help? Learn how to contribute to Fedora Docs ›