2017-02-10 1 views
-3

Ich weiß, das wurde gefragt, aber es gab keine Lösung zur Verfügung gestellt. Python UTC datetime object's ISO format doesn't include Z (Zulu or Zero offset)Python UTC Timestamp mit ISO-Format

Ich suche eine sauber Weise mit diesem Format in Python UTC-Zeitstempel zu erzeugen. Das Format, das ich brauche, ist 2013-10-29T09:38:41.341Z.

Insbesondere muss ich "Z" am Ende einschließen. Pythons datetime.utcnow().isoformat() fügt "Z" am Ende nicht an.

Beachten Sie, dass das manuelle Anhängen von "Z" keine Lösung ist, die ich akzeptieren kann. Ich suche nach einem sauberen Weg, dies zu tun.

Was ist die saubere Möglichkeit, UTC Timestamp im ISO-Format mit dem Suffix Z zu generieren?

+0

„[Wenn die Zeit in UTC ist, ohne Leerzeichen ein Z direkt nach der Zeit hinzufügen.] (Https://en.wikipedia.org/wiki/ISO_8601#UTC)“ - es ist nichts falsch mit hängt es an, wenn es richtig gemacht wird. [Dies ist eine anständige Methode] (http://stackoverflow.com/questions/42154763/python-utc-timestamp-with-iso-format#comment71475798_42154929), wie es gut zurück konvertiert. –

Antwort

2

Wie wäre es so etwas wie

datetime.utcnow().isoformat()[:-3] + 'Z' 
+1

Wie ich geschrieben habe, ist das manuelle Anhängen für mich nicht akzeptabel. Es ist hacky. – sh0731

+0

Warum ist es nicht akzeptabel? –

+0

Wenn Sie denken, dass dies eine elegante Lösung ist, haben Sie einen anderen Standard als meinen. Ich würde es hassen zu sehen, dass mein Code so etwas tut. Es ist definitiv nicht sauber meiner Meinung nach. – sh0731

1

Sie die arrow Bibliothek verwenden können.

Arrow deckt es noch nicht, siehe github issue. Und ich glaube nicht, dass irgendeine Python-Bibliothek es schon tut. Aber es ist ziemlich einfach, für jetzt zu hacken.

Need mit pip obwohl installiert werden:

$ pip install arrow 

Dann wird Ihr ISO-Format, aber ohne Zulu Format

import arrow 

arrow.utcnow().isoformat() 
#'2017-02-10T08:44:38.954159+00:00' 

Oder Sie machen Sie Ihre eigenen.

arrow.utcnow().format('YYYY-MM-DDTHH:mm:ss.SSS') + 'Z' 
# 2017-02-11T12:34:30.483Z 
+0

lesen Sie die Frage sorgfältig. Das ist nicht das Format, das ich möchte. Ich möchte das Suffix "Z". Nicht die "+00: 00" – sh0731

+1

arrow.utcnow(). Format ('JJJJ-MM-DDTHH: mm: ss.SSS') + 'Z' hat gut funktioniert, vielen Dank – RCP

Verwandte Themen