Pour ceux qui préfèrent la ligne de commande, je me suis fait un petit alias bash pour afficher une heure/date dans plusieurs timezones (testé sous Debian/Ubuntu/Mint)
tz (){local A D T tz M UTC0 UTC1 LOCATIONS
D="$*"[ -n "$D"]||D=now
T=$(date -d "$D" +%s)||return# Add here your preferred locations (as given by tzselect)
LOCATIONS+=" America/Los_Angeles"# PST/PDT#LOCATIONS+=" America/Denver" # MST/MDT
LOCATIONS+=" America/Chicago"# CST/CDT#LOCATIONS+=" America/New_York" # EST/EDT
LOCATIONS+=" Europe/London"# GMT/BST
LOCATIONS+=" Europe/Paris"# CET/CEST #LOCATIONS+=" Asia/Shanghai" # CST (China Standard Time)
LOCATIONS+=" Asia/Tokyo"# JST #LOCATIONS+=" Australia/Melbourne" # AEDT/AEST#LOCATIONS+=" Australia/Adelaide" # ACDT/ACST# Get current timezone now (in $UTC0) and at requested time (in $UTC1)# They may be different because of summer/winter time changes. UTC0=$(LC_ALL=C date -d "now" +"%z")UTC1=$(LC_ALL=C date -d "@$T" +"%z")for tz in $LOCATIONS;do# UTC2 is the UTC timezone of $tz at the given time UTC2=$(LC_ALL=C TZ="$tz" date -d "@$T" +"%z")if["$UTC1"=="$UTC2"];thenif["$UTC0"=="$UTC1"];thenM="*"# This is consistent with current timezone.elseM="?"# Also but probably with a summer/winter time change.fielseM=" "fiA=$(LC_ALL=C TZ="$tz" date -d "@$T" +"%c %Z (UTC%:z)")# Prefix each output line with its numeric timezone. # That prefix will we removed after sorting.printf"%s %c%-20s %s\n""$UTC2""$M""$tz""$A"done| sort -n | cut -c 7-
}
Par défaut, cela donne l'heure actuelle mais il est aussi possible de spécifier une autre heure ou date dans un format accepté par la commande date
voici quelques exemples (voir aussi 'info date'):
tz # maintenant
tz 14:00 # aujourd'hui 14:00 dans le fuseau horaire du système
tz 14:00+4 # aujourd'hui 14:00 en UTC+4
tz tomorrow 2pm PST # demain 14:00 en Pacific Standard Time
tz 2pm July 14 CEST # le 14 juillet à 14:00 Central European Summer Time
Voici un exemple de résultat
America/Los_Angeles Sun Sep 20 07:58:25 2015 PDT (UTC-07:00)
America/Chicago Sun Sep 20 09:58:25 2015 CDT (UTC-05:00)
Europe/London Sun Sep 20 15:58:25 2015 BST (UTC+01:00)
*Europe/Paris Sun Sep 20 16:58:25 2015 CEST (UTC+02:00)
Asia/Tokyo Sun Sep 20 23:58:25 2015 JST (UTC+09:00)
Attention au heures d'été & hivers.
Par exemple, "Dec 25 CEST" ne marchera pas car Noel n'est pas en heure d'été.
Il faut utiliser "Dec 25 CET".
Remarque: une ligne démarrant par * correspond au fuseau horaire actuel (même valeur UTC). Si un changement d'heure d'été/hivers doit avoir lieu entre maintenant et l'heure demandée alors le * est remplacé par ?.
Sous Debian/Ubuntu, j'utilise tzselect pour trouver le nom des fuseaux horaires qui m'intéressent (ou alors, voir dans /usr/share/zoneinfo)
[^] # Re: cal est bogué aussi !
Posté par SChauveau . En réponse au journal C'est officiel, la semaine 43 du calendrier n'existe plus et a été remplacée par la semaine 53.. Évalué à 3.
Pour ceux qui préfèrent la ligne de commande, je me suis fait un petit alias bash pour afficher une heure/date dans plusieurs timezones (testé sous Debian/Ubuntu/Mint)
Par défaut, cela donne l'heure actuelle mais il est aussi possible de spécifier une autre heure ou date dans un format accepté par la commande date
voici quelques exemples (voir aussi 'info date'):
Voici un exemple de résultat
Attention au heures d'été & hivers.
Par exemple, "Dec 25 CEST" ne marchera pas car Noel n'est pas en heure d'été.
Il faut utiliser "Dec 25 CET".
Remarque: une ligne démarrant par * correspond au fuseau horaire actuel (même valeur UTC). Si un changement d'heure d'été/hivers doit avoir lieu entre maintenant et l'heure demandée alors le * est remplacé par ?.
Sous Debian/Ubuntu, j'utilise tzselect pour trouver le nom des fuseaux horaires qui m'intéressent (ou alors, voir dans /usr/share/zoneinfo)