Lors de l'écriture d'un petit code python, je pense qu'il est courant de traiter la date et l'heure. À ce moment-là, j'avais l'impression que le fuseau horaire était nécessaire et qu'il était difficile d'installer pytz à chaque fois, j'ai donc créé une classe de fuseau horaire (classe d'héritage tzinfo) sur une seule ligne.
Code 1 ligne.
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})
code conforme pep8.
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 avec le fuseau horaire jst ajouté à datetime_Faire du temps ou de l'époque_Obtenir du temps.
>>> 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
>>>
>>> #Génération de classe héritée par JST tzinfo
>>> jst = JST()
>>> jst
<tzinfo Tokyo 9:00:00 JST>
>>>
>>> #Ajouter tzinfo avec remplacer
>>> 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>)
>>>
>>> #struct utc de jst datetime_Obtenir du temps
>>> 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)
>>>
>>> #Obtenir l'heure de l'époque à partir de jst datetime
>>> calendar.timegm(jst_datetime.utctimetuple())
1481882046
Cette fois, j'ai créé le fuseau horaire japonais JST, mais vous pouvez également créer un autre fuseau horaire avec l'heure d'été en modifiant "_utcoffset", "_zone", "_tzname" et "dst method".
Si vous souhaitez écrire un petit code dans le fuseau horaire, veuillez l'utiliser.
Recommended Posts