[Hinweis] Erstellen Sie mit Python eine einzeilige Zeitzonenklasse

Wenn ich einen kleinen Python-Code schreibe, denke ich, dass es üblich ist, sich mit Datum und Uhrzeit zu befassen. Zu diesem Zeitpunkt hatte ich das Gefühl, dass Zeitzone benötigt wird und es schwierig ist, jedes Mal Pytz zu installieren. Deshalb habe ich eine Zeitzonenklasse (tzinfo-Vererbungsklasse) in einer Zeile erstellt.

Memo-Code

1 Zeilencode

1 Zeilencode.


JST = type('JST', (__import__('datetime').tzinfo,), {'_tzname': 'JST', '_zone': 'Tokyo', '_utcoffset': __import__('datetime').timedelta(hours=9), '__module__': 'timezone', '__str__': lambda self: self._zone, '__repr__': lambda self: '<tzinfo {} {} {}>'.format(self._zone, self._utcoffset, self._tzname), 'utcoffset': lambda self, dt: self._utcoffset, 'dst': lambda self, dt: __import__('datetime').timedelta(0), 'tzname': lambda self, dt: self._tzname})

pep8-kompatibler Code

pep8-kompatibler Code.


JST = type(
    'JST',
    (__import__('datetime').tzinfo,),
    {'_tzname': 'JST',
     '_zone': 'Tokyo',
     '_utcoffset': __import__('datetime').timedelta(hours=9),
     '__module__': 'timezone',
     '__str__': lambda self: self._zone,
     '__repr__': lambda self: '<tzinfo {} {} {}>'.format(
         self._zone, self._utcoffset, self._tzname),
     'utcoffset': lambda self, dt: self._utcoffset,
     'dst': lambda self, dt: __import__('datetime').timedelta(0),
     'tzname': lambda self, dt: self._tzname}
)

Konvertieren Sie Datum und Uhrzeit von JST in UTC-Zeit

utc struct mit jst time zone zur datetime hinzugefügt_Nehmen Sie sich Zeit oder Epoche_Zeit bekommen.


>>> JST = type('JST', (__import__('datetime').tzinfo,), {'_tzname': 'JST', '_zone': 'Tokyo', '_utcoffset': __import__('datetime').timedelta(hours=9), '__module__': 'timezone', '__str__': lambda self: self._zone, '__repr__': lambda self: '<tzinfo {} {} {}>'.format(self._zone, self._utcoffset, self._tzname), 'utcoffset': lambda self, dt: self._utcoffset, 'dst': lambda self, dt: __import__('datetime').timedelta(0), 'tzname': lambda self, dt: self._tzname})
>>>
>>> import datetime
>>> import calendar
>>>
>>> #JST tzinfo erbte die Klassengenerierung
>>> jst = JST()
>>> jst
<tzinfo Tokyo 9:00:00 JST>
>>>
>>> #Fügen Sie tzinfo mit ersetzen hinzu
>>> jst_datetime = datetime.datetime.now().replace(tzinfo=JST())
>>> jst_datetime
datetime.datetime(2016, 12, 16, 18, 54, 6, 749383, tzinfo=<tzinfo Tokyo 9:00:00 JST>)
>>>
>>> #utc struct von jst datetime_Zeit bekommen
>>> jst_datetime.utctimetuple()
time.struct_time(tm_year=2016, tm_mon=12, tm_mday=16, tm_hour=9, tm_min=54, tm_sec=6, tm_wday=4, tm_yday=351, tm_isdst=0)
>>>
>>> #Holen Sie sich die Epochenzeit von jst datetime
>>> calendar.timegm(jst_datetime.utctimetuple())
1481882046

Nachwort

Dieses Mal habe ich die japanische Zeitzone JST erstellt. Sie können jedoch auch eine andere Zeitzone mit Sommerzeit erstellen, indem Sie "_utcoffset", "_zone", "_tzname" und "dst method" ändern.

Wenn Sie einen kleinen Code in der Zeitzone schreiben möchten, verwenden Sie ihn bitte.

Recommended Posts

[Hinweis] Erstellen Sie mit Python eine einzeilige Zeitzonenklasse
Erstellen Sie mit Class einen Python-Funktionsdekorator
Erstellen Sie ein Verzeichnis mit Python
Erstellen Sie eine virtuelle Umgebung mit Python!
[Python] Erbt eine Klasse mit Klassenvariablen
Erstellen Sie mit Python + PIL ein Dummy-Image.
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen wir mit Python eine kostenlose Gruppe
Erstellen Sie mit Python 3.4 einen Worthäufigkeitszähler
Erstellen Sie mit tkinter [Python] einen Rahmen mit transparentem Hintergrund.
Erstellen Sie ein Python-Modul
Erstellen Sie mit Minette für Python einen LINE BOT
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird
Sie können auch mit Python problemlos eine GUI erstellen
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Erstellen Sie eine Farbleiste mit Python + Qt (PySide)
Schritte zum Erstellen eines Twitter-Bots mit Python
Python: Erstellen Sie eine Klasse, die entpackte Zuweisungen unterstützt
Erstellen Sie mit Python einen Entscheidungsbaum von 0 (1. Übersicht)
Erstellen Sie eine neue Seite im Zusammenfluss mit Python
Erstellen Sie mit Python + Qt (PySide) ein farbspezifisches Widget.
Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)
Erstellen Sie eine Python-Umgebung
Erstellen Sie einfach eine Python-Konsolenanwendung mit Click
[Python] Generieren Sie ValueObject mit dem vollständigen Konstruktor mithilfe von Datenklassen
Erstellen Sie eine Python-Entwicklungsumgebung mit Vagrant + Ansible + Fabric
Erstellen Sie in Docker eine Ebene für AWS Lambda Python
[Python] Erstellen Sie mit np.arange ein Datumsarray mit beliebigen Inkrementen
Hinweise zur Beschleunigung des Python-Codes mit Numba
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
[Python] Erstellen Sie mit cx_Freeze eine Verteilungsdatei für das Tkinter-Programm
Erstellen Sie mit Quarry einen gefälschten Minecraft-Server in Python
Erstellen Sie eine 2D-CAD-Datei ".dxf" mit Python [ezdxf]
Erstellen Sie ein Wörterbuch in Python
Erstellen Sie ein 3D-GIF mit Python3
Erstellen Sie eine Homepage mit Django
[Hinweis] Betreiben Sie MongoDB mit Python
Erstellen Sie ein Python-Numpy-Array
Machen Sie eine Lotterie mit Python
Ein Hinweis zu [Python] __debug__
Ein Hinweis zum Aufrufen der Facebook-API mit dem Python SDK
[Python] Erstellen Sie mit tkinter einen Bildschirm zur Datei- und Ordnerpfadspezifikation
Erstellen Sie einen Mastodon-Bot mit einer Funktion, die automatisch mit Python antwortet
Erstellen Sie ein untergeordnetes Konto für die Verbindung mit Stripe in Python
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Wahrscheinlich der einfachste Weg, um mit Python 3 ein PDF zu erstellen
Lassen Sie uns ein PRML-Diagramm mit Python, Numpy und matplotlib erstellen.
[Python] Hinweise beim Versuch, Numpy mit Cython zu verwenden
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
Erstellen Sie mit python wxpython + openCV ein einfaches Videoanalysetool
Erstellen Sie mit VSCode & Docker Desktop eine einfache Python-Entwicklungsumgebung
Erstellen Sie eine Nachricht, die der Lokalisierung entspricht, mit einer Python-Übersetzungszeichenfolge
[Python] Erstellen Sie mit Django einen Bildschirm für den HTTP-Statuscode 403/404/500
[Hinweis] Eine Geschichte über den Versuch, eine Klassenmethode mit zwei Unterbalken in der Python 3-Serie zu überschreiben.
[Python] Was ist eine with-Anweisung?