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.
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.
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}
)
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
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