Время ISO (ISO 8601) в Python

Похоже на ту же проблему, что и: https://railsblogs.rohityadav.in/2018/01/awss3errorsaccessdenied-access-denied.html

Если вы получили это ошибка при попытке загрузки на S3, вам необходимо назначить этому пользователю IAM политику «AmazonS3FullAccess».

blockquote>

Или это может быть проблема с настройкой heroku:

AWS :: S3 :: Errors :: AccessDenied. Невозможно сохранить в S3 с Ruby on Rails

Вам нужно установить свои учетные данные AWS в качестве переменных конфигурации в heroku (в основном, переменных среды). Вы можете проверить, установлены ли они с помощью настройки heroku; если они не установлены, вы можете добавить их с помощью конфигурации heroku: set S3_BUCKET_NAME = что-то AWS_ACCESS_KEY_ID = что угодно AWS_SECRET_ACCESS_KEY = something_secret. Больше информации с помощью настройки heroku --help

blockquote>

264
задан Peter Mortensen 23 October 2018 в 17:10
поделиться

3 ответа

Добавление маленького изменения к estani's превосходный ответ

Локальный для ISO 8601 с TimeZone и никакая информация с 1110 микросекундами (Python 3):

import datetime, time

utc_offset_sec = time.altzone if time.localtime().tm_isdst else time.timezone
utc_offset = datetime.timedelta(seconds=-utc_offset_sec)
datetime.datetime.now().replace(microsecond=0, tzinfo=datetime.timezone(offset=utc_offset)).isoformat()

Демонстрационный Вывод:

'2019-11-06T12:12:06-08:00'

Протестированный, что этот вывод может быть проанализирован и Javascript Date и C# DateTime / DateTimeOffset

1
ответ дан 23 November 2019 в 02:28
поделиться

Вам нужно использовать OS.Stat , чтобы получить время создания файлов и комбинацию Time.Stime. и Time.TimeZone для форматирования для форматирования:

>>> import time
>>> import os
>>> t = os.stat('C:/Path/To/File.txt').st_ctime
>>> t = time.localtime(t)
>>> formatted = time.strftime('%Y-%m-%d %H:%M:%S', t)
>>> tz = str.format('{0:+06.2f}', float(time.timezone) / 3600)
>>> final = formatted + tz
>>> 
>>> final
'2008-11-24 14:46:08-02.00'
14
ответ дан 23 November 2019 в 02:28
поделиться

Поправьте меня, если я ошибаюсь (я не ошибаюсь), но смещение от UTC меняется с переходом на летнее время. Поэтому вы должны использовать

tz = str.format('{0:+06.2f}', float(time.altzone) / 3600)

Я также считаю, что знак должен быть другим:

tz = str.format('{0:+06.2f}', -float(time.altzone) / 3600)

Я могу ошибаться, но я так не думаю.

4
ответ дан 23 November 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: