Да, должно быть безопасно использовать один и тот же объект Encoding
, поскольку он предназначен для бездействия, тогда как Encoder
и Decoder
являются состояниями, сохранение неполных символов и т. д., если это необходимо. Я полагаю, вы могли бы написать класс с состоянием Encoding
, но это была бы очень плохая идея. Насколько мне известно, все встроенные реализации кодирования являются безстоящими и потокобезопасными.
Например, свойства Encoding.UTF8
, Encoding.ASCII
и т. Д. Являются одиночными.
метка времени время всегда в UTC, но когда Вы звоните datetime.datetime.fromtimestamp
, это возвращает Вас время в Вашем локальном часовом поясе, соответствующем этой метке времени, таким образом, результат зависит Вашей локали.
>>> import time, datetime
>>> time.time()
1564494136.0434234
>>> datetime.datetime.now()
datetime.datetime(2019, 7, 30, 16, 42, 3, 899179)
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2019, 7, 30, 16, 43, 12, 4610)
Там существуют хорошая библиотека arrow
с другим поведением. В том же случае это возвращает Вас объект времени с часовым поясом UTC.
>>> import arrow
>>> arrow.now()
<Arrow [2019-07-30T16:43:27.868760+03:00]>
>>> arrow.get(time.time())
<Arrow [2019-07-30T13:43:56.565342+00:00]>