Bash obtenir UTC temps en deuxième

il semble que je n'arrive pas à obtenir la date bash UTC en seconde. Je suis à Sydney donc + 10 heures UTC time

 date
 Thu Jul 3 17:28:19 WST 2014

 date -u
 Thu Jul 3 07:28:20 UTC 2014

Mais quand j'ai essayé de le convertir, j'obtiens le même résultat qui n'est pas l'heure UTC

 date +%s
 1404372514

 date -u +%s
 1404372515

Qu'est-ce que je rate ici?


après avoir reçu une réponse disant date +%s était de retour UTC heure, voici plus de détails sur le problème que je fais face maintenant.

j'essaie de comparer une date écrite dans un fichier avec Python. Cette date est écrite en secondes dans le temps UTC. Et le bash date +%s ne me donne pas le même. En fait si je le fais en python!--4-->, j'obtiens l'heure actuelle de Sydney, pas de l'UTC. Je ne comprends pas.

25
demandé sur Brad Koch 2014-07-03 11:33:13
la source

4 ответов

je crois +%s secondes depuis epoch. C'est invariant de fuseau horaire.

12
répondu JamesNoonan33 2014-07-03 11:37:46
la source

je parie que c'est ce qui était prévu.

$ date -u [email protected]
Thu Jul  3 07:28:34 UTC 2014
9
répondu Derek Boonstra 2016-09-27 02:07:46
la source

vous dites que Vous êtes en utilisant:

time.asctime(time.localtime(date_in_seconds_from_bash))

date_in_seconds_from_bash est probablement la sortie de date +%s.

time.localtime fonction, comme son nom l'indique, vous donne .

si vous voulez UTC, utilisez time.gmtime() plutôt que time.localtime().

JamesNoonan33 réponse dit, la sortie de date +%s fuseau horaire est invariant, donc date +%s est exactement l'équivalent de date -u %s. Il imprime le nombre de secondes depuis le "époque", qui est 1970-01-01 00:00:00 UTC. La sortie de vous montrer dans votre question est tout à fait compatible avec:

date -u
Thu Jul 3 07:28:20 UTC 2014

date +%s
1404372514   # 14 seconds after "date -u" command

date -u +%s
1404372515   # 15 seconds after "date -u" command
5
répondu Keith Thompson 2017-05-23 15:17:52
la source

On peut envisager d'ajouter cette ligne à ~/.bash_profile (ou similaires) afin de pouvoir obtenir rapidement L'UTC courant à la fois en temps courant et en secondes depuis l'époque.

alias utc='date -u && date -u +%s'

0
répondu Adam 2018-04-17 18:24:50
la source

Autres questions sur