[PYTHON] Ich habe versucht, datetime <-> string mit tzinfo mit strftime () und strptime () zu konvertieren.

Umgebung

Python 2.7.10

Referenzmaterial

8.1. Datums- und Uhrzeitangaben - grundlegende Datums- und Uhrzeittypen

Verwenden Sie strftime, um die datetime-Zeichenfolge abzurufen, die tzinfo enthält

>>> from datetime import datetime
>>> import pytz
>>> 
>>> jst = pytz.timezone('Japan')
>>> jst_datetime = datetime.now().replace(tzinfo=jst)
>>> print jst_datetime
2015-11-12 16:09:18.544266+09:00
>>> jst_datetime_str = datetime.strftime(jst_datetime, '%Y-%m-%d %H:%M:%S %z')
>>> print jst_datetime_str
2015-11-12 16:09:18 +0900
>>> datetime.strftime(jst_datetime, '%Y-%m-%d %H:%M:%S %Z')
'2015-11-12 16:09:18 JST'

Mit tzinfo kann eine datetime-Zeichenfolge ausgegeben werden.

Ruft mit tzinfo datetime aus der datetime-Zeichenfolge mit strptime ab

>>> print jst_datetime_str
2015-11-12 16:09:18 +0900
>>> datetime.strptime(jst_datetime_str, '%Y-%m-%d %H:%M:%S %z')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/lib/python2.7/_strptime.py", line 317, in _strptime
    (bad_directive, format))
ValueError: 'z' is a bad directive in format '%Y-%m-%d %H:%M:%S %z'
>>> 

Ich habe versucht, die datetime mit timsezone mithilfe der datetime-Zeichenfolge mit tzinfo abzurufen, aber es ist ein Fehler aufgetreten.

ValueError: 'z' is a bad directive in format '%Y-%m-%d %H:%M:%S %z'

Ich erhalte die Fehlermeldung, dass der '% z-Spezifizierer ein schlechtes Format hat.

Das Ergebnis verschiedener Untersuchungen http://stackoverflow.com/questions/2609259/converting-string-to-datetime-object-in-python

Es scheint, dass% z in Python2.7 nicht unterstützt wird. Es scheint mit Python3.2 zu funktionieren. Ich kann die Version nicht ändern, versuchen Sie es also mit einer anderen Methode

>>> jst_datetime_str = datetime.strftime(jst_datetime, '%Y-%m-%d %H:%M:%S %Z')
>>> print jst_datetime_str
2015-11-12 16:09:18 JST
>>> datetime.strptime(jst_datetime_str, '%Y-%m-%d %H:%M:%S %Z')
datetime.datetime(2015, 11, 12, 16, 9, 18)

Ich habe versucht,% Z zu verwenden, aber dieses Mal erhalte ich eine Datums- und Uhrzeitangabe ohne tzinfo, obwohl kein Fehler auftritt.

Auf der Suche nach anderen http://nekoya.github.io/blog/2013/06/21/python-datetime/

Diese Person konnte% Z auch nicht verwenden, so dass es den Anschein hat, als hätte sie "replace (tzinfo = pytz.utc)" verwendet, um es festzulegen. Es scheint unmöglich zu sein, mit einem Spezifizierer zu konvertieren, also habe ich versucht, es durch Drücken zu handhaben

>>> from datetime import datetime
>>> import pytz
>>> 
>>> jst = pytz.timezone('Japan')
>>> jst_datetime = datetime.now().replace(tzinfo=jst)
>>> print jst_datetime
2015-11-12 16:54:19.564920+09:00
>>> jst_datetime_str = datetime.strftime(jst_datetime, '%Y-%m-%d %H:%M:%S') + ' ' + jst_datetime.tzinfo.zone
>>> print jst_datetime_str
2015-11-12 16:54:19 Japan
>>> zone = jst_datetime_str.split(' ')[-1]
>>> print zone
Japan
>>> datetime_str = ' '.join(jst_datetime_str.split(' ')[:2])
>>> print datetime_str
2015-11-12 16:54:19
>>> datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S').replace(tzinfo=pytz.timezone(zone))
datetime.datetime(2015, 11, 12, 16, 54, 19, tzinfo=<DstTzInfo 'Japan' JST+9:00:00 STD>)

So was.

Zusammenfassung

-In Python2.7 können die Bezeichner '% Z'und'% z'kann nicht in strptime verwendet werden. ・ Es kann jedoch normal mit Strftime verwendet werden. ・ Ich habe es später nicht bestätigt, aber es scheint, dass Python3.2 mit strptime verwendet werden kann. ・ Ehrlich gesagt fühlt es sich wie eine Kraft an, aber ich frage mich, ob es einen anderen guten Weg gibt.

Recommended Posts

Ich habe versucht, datetime <-> string mit tzinfo mit strftime () und strptime () zu konvertieren.
Python datetime So berechnen Sie Datumsangaben und konvertieren Zeichenfolgen strftime, strptime [Definitive Edition]
Ich habe versucht, mit VOICEROID2 2 automatisch zu lesen und zu speichern
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
Ich habe versucht, mit VOICEROID2 automatisch zu lesen und zu speichern
Ich habe versucht, Grad-CAM mit Keras und Tensorflow zu implementieren
[Python] Konvertiert die Zeitanzeige (str-Typ) mit "" "und" '"in Sekunden (float-Typ) mit datetime und timedelta
Ich habe versucht, Überlebende der Titanic mit Kaggle vorherzusagen und einzureichen
Ich habe versucht, die Informationen des Webs mit "Requests" und "lxml" abzurufen.
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Ich habe versucht, die Lesezeichen zu visualisieren, die mit Doc2Vec und PCA nach Slack fliegen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, PyEZ und JSNAPy zu verwenden. Teil 4: Automatisieren Sie die ISP-Einrichtung mit PyEZ und JSNAPy
Ich habe versucht, Bulls and Cows mit einem Shell-Programm zu erstellen
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe versucht, Gesichtsmarkierungen mit Python und Dlib leicht zu erkennen
Ich habe versucht, Amazon SQS mit Django-Sellerie zu verwenden
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, Selen mit Headless-Chrom zu verwenden
Ich habe versucht, PyEZ und JSNAPy zu verwenden. Teil 2: Ich habe versucht, PyEZ zu verwenden
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe versucht, TSP mit QAOA zu lösen
Ich habe versucht, ein Programm zu erstellen, das Hexadezimalzahlen mit Python in Dezimalzahlen konvertiert
Ich versuchte, Trauer und Freude über das Problem der stabilen Ehe auszudrücken.
Mayungos Python Learning Episode 6: Ich habe versucht, eine Zeichenkette in eine Zahl umzuwandeln
Ich habe versucht, den Winkel von Sin und Cos mit Chainer zu lernen
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe ein Beispiel für den Zugriff auf Salesforce mit Python und Bottle erstellt
Ich habe versucht, den Google-Kalender mit CSV-Terminen mithilfe von Python und Google API zu aktualisieren
Ich habe versucht, die Netzwerkbandbreite und -verzögerung mit dem Befehl tc zu steuern
Ich habe versucht, nächstes Jahr mit AI vorherzusagen
Ich habe versucht, das Update von "Hameln" mit "Beautiful Soup" und "IFTTT" zu benachrichtigen.
Ich habe versucht, PyEZ und JSNAPy zu verwenden. Teil 1: Übersicht
Ich habe versucht, einen periodischen Prozess mit CentOS7, Selenium, Python und Chrome durchzuführen
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Ich habe versucht, lightGBM, xg Boost mit Boruta zu verwenden
Ich habe versucht, Web-Scraping mit Python und Selen
Ich habe versucht, mit TF Learn die logische Operation zu lernen
Ich habe versucht, GAN (mnist) mit Keras zu bewegen
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, Java mit Termux unter Verwendung von Termux Arch zu verwenden, aber es hat nicht funktioniert
Ich habe versucht, mit OpenCV Bewegungen schnell zu erkennen
Ich habe versucht, Keras in TFv1.1 zu integrieren
Ich habe versucht, WAV-Dateien mit Pydub zu synthetisieren.
Ich habe versucht, die Python-Bibliothek "pykakasi" zu verwenden, die Kanji in Romaji konvertieren kann.
Python-Programmierung: Ich habe versucht, Nachrichtenartikel mit Selenium und BeautifulSoup4 abzurufen (zu crawlen)
Ich habe versucht, mit PartiQL und MongoDB verbunden zu spielen
Ich habe Jacobian und teilweise Differenzierung mit Python versucht
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, Mecab mit Python2.7, Ruby2.3, PHP7 zu verwenden
Ich habe Funktionssynthese und Curry mit Python versucht
Drei Dinge, von denen ich süchtig war, als ich Python und MySQL mit Docker verwendete