Без внятного ТЗ — результат ХЗ
?- Без внятного ТЗ — результат ХЗ
- kukmor
- January 27th, 14:14
45
…
6 цилиндров с уровнем внизу.
Что это на фотографии? 50 жжетонов первому отгадавшему.Отгадку опубликую сегодня в 21.01
Доброе утро!
…О хорошем человеке
Когда я учился в универе, мне нравилась одна студентка.

Очень хотелось пригласить ее в кафе, но денег в то время почти не водилось. Ходил поникший по…Вика Цыганова — Вагнер (Премьера песни, новое видео 2022)
…
Дом
…
)
Прикиньте, как у Ильи Муромца в глазах потемнело, когда он в 33-то года резко встал?
Подполковник Станислав Сепеев
Подполковник Станислав Сепеев лично руководил артиллерийскими подразделениями, осуществляющими огневую поддержку российским мотострелкам.
Под его…Мнение железнодорожника:
«Имею опыт в профессии. Помощник машиниста электровоза, тепловоза, а так же по образованию я «Мастер ЖД пути, строительство и содержание», общий стаж…
Без внятного ТЗ результат ХЗ или Какой бриф, такой и креатив.
Почтенный Клиент!
Вы читаете эту статью потому что задумались о закупке рекламно-сувенирной продукции и, возможно, уже обратились в наше Агентство материальных коммуникаций PromoPrime.
Мы бы хотели познакомить Вам с нашими стандартами работы, с нашей «внутренней кухней», чтобы Вы узнали с кем Вам предстоит иметь дело.
Начнём наше повествование с такого незаменимого диагностического инструмента как Бриф.
Без внятного ТЗ результат ХЗ. Какой бриф, такой и креатив. Подобные фразы в рекламной среде встречаются едва ли не чаще чем обсуждение бюджетов и сроков работ. Понять, что конкретно хочет получить в результате твоей работы Клиент, иногда очень сложно. Переговоры напоминают соревнования по перетягиванию каната — Заказчик будто бы специально утаивает важные детали. А в итоге — «все не то, мы это себе по-другому представляли». Кто виноват? Оба. Специалист Агентства — в том, что работал без брифа, а Заказчик — что не захотел дать исчерпывающую информацию о проекте и своем видении результата. К сожалению или к счастью, мысли читать мы пока не умеем, так что надо выкручиваться.
В данном письме мы поговорим о том, как бриф помогает собирать максимум информации, экономить время, сохранять нервную систему и добрые взаимоотношения.
Кому и для чего нужен бриф
Этот инструмент чаще встречается в креативных сферах, связанных с оказанием услуг в сфере рекламы. Наш промо-сегмент рекламного рынка не исключение.Чтобы результат работы оправдал ожидания Заказчика и выстрелил точно в цель, специалист должен опираться на точную и достоверную информацию — о задачах, которые клиент хочет решить, о бизнесе и целевой аудитории. Наконец, о том, каким сам заказчик видит дизайн или текст. Люди разные и нередко имеют диаметрально противоположные мнения о качестве, особенно в таких креативных сферах. В таких ситуациях спасает бриф — документ, в котором фиксируются все пожелания клиента и другая необходимая для работы информация.
Польза для Заказчика
Получить качественный продукт на выходе в интересах Заказчика и Исполнителя, и это основная причина, по которой без брифинга в нашем деле никуда. Но плюсов от использования этого инструмента гораздо больше.
Гарантия качества.
Чем подробнее и обстоятельнее Клиент заполнит бриф — опишет все нюансы, поделится своим видением результата, приложит ссылки на понравившиеся тексты — тем больше конечный результат будет соответствовать его ожиданиям. Ну и об экономическом эффекте забывать не стоит — чётко выверенная коммуникация через таргетированный подарок, основанная на реальной маркетинговой информации, принесет в итоге больше пользы, чем очередной типовой сувенир с посылом типа «Логотип, сайт, телефон».
Экономия времени. Чаще всего обсуждение проекта идет в электронной переписке, на это уходит от нескольких часов до нескольких дней. Еще больше отнимает поиск нужной информации в почтовом ящике. Во время обсуждения концепции подарка в голову приходит интересная мысль, и вы вспоминаете, что представитель Агентства что-то писал о возможности интересного вида нанесения логотипа или упаковочного решения. Но цифр и конкретики не помните и начинаете просматривать десятки писем в поисках нужного.
С брифом такого не произойдет. Даже если после заполнения Вам Исполнитель задавал дополнительные уточняющие вопросы, то данные ответы и идеи были добавлены в соответствующие поля брифа, который всегда можно запросить по эл.почте.
Новый взгляд на собственный бизнес. Когда долго работаешь на рынке и постоянно загружен ежедневными делами, непросто найти время и посмотреть на ситуацию под другим ракурсом. Глаз замыливается. Когда вы заполняете бриф, вам самим могут прийти в голову интересные идеи продвижения, позиционирования и рекламных акций. На какие-то мысли может натолкнуть детальное описание свойств собственного продукта, на другие — характеристики целевой аудитории или сайты конкурентов. Такой мозговой штурм вытащит на поверхность то, о чем вы давно забыли или вовсе никогда не задумывались. Вы сможете выявить слабые места в бизнесе и улучшить их.
Также заполнение брифа позволит Вам структурировать мысли и у Вас появится почва для всесторонней оценки бизнес-задачи на этапе интервьюирования.
Экономия денег. Речь о повторной оплате одних и тех же подарков. Вы приняли предложенную концепцию подарков. Исполнитель изготовил и отгрузил Вам весь тираж готовой продукции. Через некоторое время выясняется, что коммуникация через эти подарки не работает — не увеличивает лояльность, конверсия не выросла, или даже упала. Результат один — вы ищете нового Подрядчика и снова платите деньги. Работа через бриф сведет такой риск к минимуму. Ваши ожидания документально закреплены, и если идея подарка не будет им соответствовать, можно будет обосновано предъявить претензии и попросить внести правки или вернуть деньги.
И так, мы определились, что от брифа сплошная польза, поэтому воспользуйтесь нашей формой брифа,чтоб мы смогли смогли сделать Ваш бизнес узнаваемым в соответствии с Вашими ожиданиями!
Нужно ли составление ТЗ? | Битрикс-веб-мастер
Быть или не быть? Создавать или не создавать? Написать на коленке или заказать серьезную проработку документа у меня, или у кого-то другого, в котором будут описаны все нюансы?
Встретил на просторах сети отличное выражение: «Без внятного ТЗ результат — ХЗ».
Не знаю, кто автор, но ему низкий поклон за такую тонкую формулировку.
Итак, вы решили создать свой сайт. Перед вами встает куча вопросов: какой домен выбрать, в какой зоне, какой хостинг (разделяемый, выделенный, виртуальный …), из каких разделов будет сайт состоять, какая информация в какой момент времени важна на этих разделах … Вопросов, на самом деле — бесконечное множество.
Допустим, вы решили описать документ, который нарекли громким словосочетанием «Техническое задание» и описали все страницы сайта, все функциональные блоки на страницах, возможно, даже в 2-х вариантах — авторизованного пользователя и для анонима. Супер! Любой проектировщик вам будет благодарен, т.к. вы создали введение для Технического задания:).
Я далек от теоретической базы в механизмах проектирования сайтов, я занимаюсь уже много лет практической стороной данного вопроса, поэтому углубляться в терминологию не буду. Я это называю постановкой задачи, по умному оно называется как-то по другому.
Это то, что я каждый раз стараюсь вытянуть для сайта, пришедшего ко мне на разработку.
Проектировщик теперь может взять вашу постановку задачи и разбить ее на функциональные разделы, расположить их в хронологическом порядке, прописать сроки сдачи функциональных блоков.
А теперь подумайте, а как понять, что сайт полностью готов? Наличие технического задания и расписанного функционала каждого блока помогает решить этот вопрос (хотя и не полностью, если в ТЗ не прописаны все нюансы).
Профессиональный проектировщик кроме банального расписывания каждой страницы, ее содержимого, ее основного функционала, сможет написать и основные сценарии поведения пользователей. А вот это уже одна из ключевых позиций в ТЗ. Сценарии описывают предполагаемые алгоритмы поведения пользователей, На основании этих сценариев потом можно сгенерировать основные сценарии проверки сайтов на ошибки.
Каждый сайт имеет какую-то основную задачу.
Для сайтов других типов цель выявить не так просто, но все же сайт создается для чего-то, для совершения пользователем каких-то действий и все заходы пользователя на сайт, в идеале, должны заканчиваться совершением данного действия. Это основное, для чего нужно ТЗ.
Углубляемся. Остановимся на основном функционале интернет-магазина — странице оформлении заказа. Команда разработчиков 1С-Битрикс создали очень продуманный и очень сложный для кастомизаций механизм шаблон оформления заказа, но если вы все же решили создать свой собственный шаблон, то это должно быть обосновано.
В механизме оформления заказа, как и в любой другой форме, получающей информацию от пользователей, должно быть большое количество проверок на корректность внесенных данных, многие данные должны приводиться в корректный вид системой в автоматическом режиме, но все же бывают моменты, когда корректные данные может выбрать только пользователь. Пользователю нужно! сообщить о том, что данные введены не корректно, или просто убрать некорректные данные? а если выдать сообщение о том, что данные не корректные, то где его показать, как его показать, что сделать с данными, введенными пользователем, что делать дальше?
И такой ворох вопросов возникает над каждым блоком на сайте и эти вопросы должны быть уже описаны в ТЗ. Если вопрос есть и он не описан в документации — он будет решаться разработчиком в более удобной для него форме. Знаю по своему опыту: очень часто бывает так, что пришедшее первым на ум решение не всегда является лучшим, но о том, что оно не лучшее узнаешь только тогда, когда со временем возникает необходимость в доработке или расширении функционала.
И так, вывод из данного поста: ТЗ однозначно нужно! но не просто сотни страниц нечитабельного текста — такие ТЗ ко мне тоже приходили. Их распечатываешь, пытаешься им следовать, но со временем понимаешь, что ТЗ было чисто формальным документом, возможно, направленным на увеличение бюджета, или простая формальность — не знаю. В ТЗ должно быть все описано четко и кратко, полно, но без лишней воды. К сожалению, менеджеры очень часто пишут как-раз плохой вариант, в котором сотни страниц, которые не возможно читать:( Поэтому лучший вариант, когда проект пишет тот, кто уже имеет большой опыт в разработке, тот, кто сам прощупал все тонкости и недостатки документаций по проектам.
Основные разделы, которые должно содержать техзадание:
- Введение. Тут должна быть описана основная задача сайта. Каждый, кто просмотрит этот мини-раздел, должен понимать, что должно быть результатом посещения пользователем данного сайта и с помощью каких инструментов.
Т.е. если это интернет магазин, то основной идеей данного раздела должно быть что-то вроде: покупатель заходит на сайт и покупает товар сайта или через покупку в 1 клик (когда вся покупка передается менеджерам), или через добавление товаров в корзину и полноценное оформление заказа. - Раздел с описанием дизайна сайта. Тут должны быть описаны все функциональные составляющие страниц, прописано разделение дизайна на шапку, подвал и рабочую область, прописаны все шрифты, цветовые схемы … Наличие такой информации в техзадании является хорошей палочкой-выручалочкой не только при верстке дизайна сайта, но и для оптимизации стилей. Также, при необходимости доработок/переработок дизайна сайта, будет проще найти где именно вносить правки, а это — сокращение трудозатрат на редизайн.
- Основной раздел сайта с описанием функционала. Вот это, наверное, самый важный раздел. Если предыдущий раздел может и отсутствовать, хотя это не желательно, то без этого раздела не может быть ТЗ, в принципе.
Тут мы описываем каждую страницу сайта, начиная с главной (хотя в разработке главная делается самой последней, т.к. она строится на базе всех остальных, поэтому и в данном разделе главная страница должна идти самой последней). Если для создания данной страницы нужна какая-то сущность в базе данных — описание страницы начинаем с описания структуры данной сущности, чтобы в хронологическом порядке все шло верно: сначала создали инфоблок, настроили его, прописали сео-шаблоны (если нужно), настроили урл-адреса для показа сущностей, потом создали раздел, описали все поля раздела, потом создали элемент инфоблока, описали все поля и только после этого перешли к описанию страницы с разделами, с разделом, с элементом, а после этого — уже описывать функционал страниц: что должно происходить по клику на тот или иной объект, куда должны осуществляться переходы с ссылок и т.д. и т.п. - Далее должны быть описаны механизмы синхронизации сайта с другими внешними системами: 1С, прайс-агрегаторы, торговые порталы.
.. Описаны подробно какие-то свои собственные механизмы экспорта/импорта данных. Описаны механизмы обновления цен на товары в каталоге (если это интернет-магазин). Возможно еще какие-то механизмы. Если на сайте используется несколько видов цен — эти виды цен также должны быть описаны с указанием того, кому какой тип цены доступен (к стати, не забывайте, что для нескольких типов цен нужна редакция БУС «Бизнес»). - Далее описываем права доступа. Тут должны быть описаны все рабочие группы пользователей. Всегда это Администратор, Авторизованный пользователь и Неавторизованный пользователь. Если нужны какие-то еще — они обязательно должны быть описаны.
- Предпоследний раздел должен содержать основные сценарии поведения пользователей на сайте: пользователь просто зашел на сайт, на главную страницу — значит ему нужно показать акции, новинки, спец.предложения …; пользователь пришел из поиска, т.е. он уже ищет какой-то товар, значит ему нужно продать этот товар или предложить аналоги и так далее.
Пользователь может зайти на любую страницу сайта и все это нужно предусмотреть. Если пользователь зашел на страницу, к которой у него нет доступа — ему об этом должно быть выдано сообщение. Каждый сайт будет содержать свой собственный набор таких правил - Последний раздел содержит календарный план сдачи функционала проекта с разделением на блоки.
Еще в ТЗ может быть включен раздел по сео-оптимизации сайта, но почему-то сеошники крайне редко делают какие-то предположения/пожелания по оптимизации на этапе проектирования или разработки. Чаще всего их привлекают, когда в сайт влили уже большие средства, но сайт не приносит должного результата, потому как о нем еще не знают:( Считаю, что сео-шники должны также участвовать в проектировании.
Если вы можете все это досконально прописать самостоятельно — отлично! Значит вам не нужно тратить средства на проектирование сайта, а можете их направить, например, на продвижение сайта в поисковых системах.
Но если вы сомневаетесь в том, что сможете все это описать — не тратьте свое время. Сядьте, напишите текстом все своим идеи, все, что вы хотите получить от сайта, что у вас есть, чего хотите достичь благодаря сайту и вышлите это мне, или другому специалисту на проработку. Напишите все как можно проще, не пытайтесь предложить реализацию. Только все ваши идеи. В любом случае вы будете очень тесно сотрудничать с проектировщиком, вам будут задавать сотни уточняющих вопросов, чтобы проект получился все же вашим, а не того, кто пишет документ. Да и лучше вас никто не знает ваш проект:)
XS-163ES | 3-полосные компонентные динамики Mobile ES
XS-163ES
Вдохните новую жизнь в автомобильное прослушивание с помощью 3-полосных компонентных динамиков Mobile ES. Благодаря новому 3 ½-дюймовому (8 см) среднечастотному динамику с диафрагмой из легкого жесткого сотового арамидного волокна, они обеспечат более широкую звуковую сцену и большую глубину вашей музыки, для насыщенного вокала и детализированных текстур инструментов.
Посмотреть Слайд-шоу
Посмотреть слайд-шоу
Скоро будет доступно
XS-163ES | 6 ½» (16 см) Mobile ES™ 3-полосные компонентные громкоговорители
Скоро в продаже
XS-163ES | 6 ½» (16 см) Mobile ES™ 3-полосные компонентные громкоговорители
Доступны в ближайшее время
Lightweight Rigi Celldular Арамидно-волоконная матричная диафрагма
Диафрагмы низкочастотного и среднечастотного динамиков изготовлены из уникального облегченного жесткого ячеистого материала Sony, ранее известного как MRC. Компаунд последнего поколения был дополнительно оптимизирован наряду с усовершенствованием механического драйвера, чтобы обеспечить еще более широкую частотную характеристику и более плавные и естественные звуковые характеристики.
Неглубокий среднечастотный динамик
Недавно разработанный среднечастотный динамик приводится в действие компактным, но невероятно мощным неодимовым магнитом.
В результате получается более мелкая корзина, разработанная для работы даже в ограниченном пространстве и в сложных условиях.
Оптимальная формула
Внедрение в уникальную матрицу с арамидными волокнами подавляет резонанс диафрагмы и минимизирует искажения не только на низких, но и на средних и высоких частотах. В результате звук получается мощным на всех частотах и необычайно чистым даже на высокой громкости.
Кроссовер с возможностью двухполосного усиления и селектором усиления
Кроссовер аудиофильского класса оснащен оптимизированными пленочными конденсаторами с низким сопротивлением для чистого воспроизведения высоких частот. Кроме того, индуктивная обмотка и катушки с воздушными сердечниками обеспечивают четкую середину и мощный звук по требованию. Вы оцените поразительно низкий уровень искажений на всех частотах и точность регулировки усиления кроссовера даже при работе компонентов с одним усилителем.
Окантовка с вырезом по краям
Объемный звук низкочастотного динамика основан на другой запатентованной технологии с характерными изогнутыми вырезами, улучшающими симметрию вертикальной амплитуды, для значительного уменьшения искажений и повышения четкости.
Пятилучевая конструкция рамы и динамический воздушный диффузор
Пятилучевая конструкция рамы рассеивает резонанс, а встроенный динамический воздушный диффузор обеспечивает эффективную циркуляцию воздуха для плавного перемещения диффузора и охлаждения звуковой катушки.
Твитеры для высоких нот
Совместимый с аудио высокого разрешения, диафрагма твитера с мягким куполом, прикрепленная непосредственно к звуковой катушке, предназначена для покрытия ультравысоких частот вашей музыки с частотным диапазоном до 40 кГц.
Узнайте больше об аудио высокого разрешения
Паутина с прогрессивной высотой
Акустически оптимизированная крестовина обеспечивает более высокую мощность и воздушный поток, а профиль разработан для более быстрой и точной амортизации диффузора динамика.
Фазовые вилки
Фазовые заглушки демпфирования резонанса на НЧ-динамике XS-163ES и СЧ-динамике помогают реализовать идеальную частотную характеристику вплоть до точек кроссовера.
Жесткая алюминиевая втулка в вуфере и динамический воздушный диффузор дополнительно поддерживают широкий частотный диапазон динамика для контролируемой и динамичной подачи звука.
Структура в разрезе
Откройте для себя структуру динамика Mobile ES, в том числе новые механические подходы, такие как объемный звук с раздельным вырезом, пятилучевая конструкция рамы и динамический воздушный диффузор.
16-сантиметровая (6 ½ дюйма) легкая жесткая диафрагма НЧ-динамика из сотового арамидного волокна и окантовка с отдельными вырезами
Фазовый штекер с демпфированием резонанса
Динамический воздушный диффузор обеспечивает плавный ход диффузора и охлаждение
Паук с прогрессивной высотой для работы с высокой мощностью
Динамический воздушный диффузор обеспечивает плавное перемещение диффузора и охлаждение
Фазовая заглушка с демпфированием резонанса
Динамический воздушный диффузор для плавного перемещения диффузора и охлаждения0003
Неодимовый магнит
Паук с прогрессивной высотой для работы с высокой мощностью
Термостойкая звуковая катушка
Термостойкая звуковая катушка с магнитной жидкостью (до 40 кГц)
Мощный неодимовый магнит
ПЕРЕЗАГРУЗИТЕ СВОИ ЛЮБИМЫЕ МУЗЫКИ С ПОМОЩЬЮ ДИНАМИКОВ MOBILE ES
Серия Mobile ES
Разработанные для максимального удовольствия от прослушивания в дороге, продукты серии Mobile ES воспроизводят все самое лучшее из вашей музыки и подключения вместе, чтобы получить невероятные впечатления от вождения.
0003
Откройте для себя серию Mobile ES
Характеристики и функции
Вдохните новую жизнь в автомобильное прослушивание с помощью трехполосных компонентных динамиков Mobile ES. Благодаря новому 3 ½-дюймовому (8 см) среднечастотному динамику с диафрагмой из легкого жесткого сотового арамидного волокна, они обеспечат вам более широкую звуковую сцену и большую глубину вашей музыки для насыщенного вокала и детализированных текстур инструментов.
Недавно просмотренные Элементы
datetime — время ISO (ISO 8601) в Python
Спросил
Изменено 7 месяцев назад
Просмотрено 606k раз
У меня есть файл. В Python я хотел бы взять время его создания и преобразовать его в строку времени ISO (ISO 8601) , сохранив при этом тот факт, что он был создан в восточном часовом поясе (ET) .
Как взять ctime файла и преобразовать его в строку времени ISO, указывающую восточный часовой пояс (и при необходимости учитывающую летнее время)?
- питон
- дата-время
- iso8601
3
Локальный для ISO 8601:
импорт даты и времени datetime.datetime.now().isoformat() >>> 2020-03-20T14:28:23.382748
UTC в ISO 8601:
импорт даты и времени datetime.datetime.utcnow().isoformat() >>> 2020-03-20T01:30:08.180856
Локальный для ISO 8601 без микросекунд:
импорт даты и времени datetime.datetime.now().replace(микросекунда=0).isoformat() >>> 2020-03-20T14:30:43
UTC в ISO 8601 с информацией о часовом поясе (Python 3):
import datetime datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat() >>> 2020-03-20T01:31:12.467113+00:00
UTC в ISO 8601 с информацией о местном часовом поясе без микросекунд (Python 3):
import datetime datetime.datetime.now().astimezone().replace(микросекунда=0).isoformat() >>> 2020-03-20T14:31:43+13:00
Локальный для ISO 8601 с информацией о часовом поясе (Python 3):
импорт даты и времени datetime.datetime.now().astimezone().isoformat() >>> 2020-03-20T14:32:16.458361+13:00
Обратите внимание на ошибку при использовании astimezone() по времени UTC. Это дает неверный результат:
datetime.datetime.utcnow().astimezone().isoformat() #Неверный результат
Для Python 2 см. и используйте pytz.
15
ISO 8601 допускает компактное представление без разделителей, кроме T , поэтому мне нравится использовать эту однострочную строку для быстрого получения строки временной метки:
>>> datetime.datetime.utcnow().strftime("%Y%m%dT%H%M%S.% фЗ")
'20180905T140903.591680Z'
Если вам не нужны микросекунды, просто пропустите часть .:
%f
>>> datetime.datetime.utcnow().strftime("%Y%m%dT%H%M%SZ ")
'20180905T140903Z'
Для местного времени:
>>> datetime.datetime.now().strftime("%Y%m%dT%H%M%S")
'20180905T140903'
В общем, я рекомендую вам оставить знаки препинания. RFC 3339 рекомендует этот стиль, потому что, если все используют знаки препинания, нет риска, что такие вещи, как несколько строк ISO 8601, будут отсортированы в группы по их пунктуации. Таким образом, один вкладыш для соответствующей строки будет выглядеть так:
>>> datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ")
'2018-09-05T14:09:03Z'
4
Вот что я использую для преобразования в формат даты и времени XSD:
из даты и времени импорта даты и времени datetime.now (). заменить (микросекунда = 0). изоформат () # Вы получаете свою строку ISO
Я столкнулся с этим вопросом при поиске формата даты и времени XSD ( xs:dateTime ).
Мне нужно было убрать микросекунды из изоформата .
3
Представление времени ISO 8601
Международный стандарт ISO 8601 описывает строковое представление даты и времени. Два простых примера этого формата:
16.12.2010 17:22:15 20101216T172215
(оба означают 16 декабря 2010 г.), но формат также позволяет использовать время с точностью до секунды и указывать часовые пояса. Этот формат, конечно, не специфичен для Python, но он удобен для хранения даты и времени в переносимом формате. Подробности об этом формате можно найти в статье Маркуса Куна.
Я рекомендую использовать этот формат для хранения времени в файлах.
Один из способов получить текущее время в этом представлении — использовать strftime из модуля time в стандартной библиотеке Python:
>>> из времени импорта strftime
>>> strftime("%Y-%m-%d %H:%M:%S")
'2010-03-03 21:16:45'
Вы можете использовать конструктор strptime класса datetime:
>>> from datetime import datetime >>> datetime.strptime("2010-06-04 21:08:12", "%Y-%m-%d %H:%M:%S") datetime.datetime(2010, 6, 4, 21, 8, 12)
Наиболее надежным является модуль Egenix mxDateTime:
>>> from mx.DateTime.ISO import ParseDateTimeUTC
>>> из даты и времени импортировать дату и время
>>> x = ParseDateTimeUTC("2010-06-04 21:08:12")
>>> datetime.fromtimestamp(x)
datetime.datetime(2010, 3, 6, 21, 8, 12)
Ссылки
Документация модуля времени Python
Документация по классу даты и времени Python
Класс Egenix mxDateTime
6
Я нашел формат datetime.iso в документации. Кажется, он делает то, что вы хотите:
datetime.isoformat([sep]) Возвращает строку, представляющую дату и время в формате ISO 8601, YYYY-MM-DDTHH:MM:SS.mmmmmm или, если микросекунда равна 0, YYYY-MM-DDTHH:MM:SS Если utcoffset() не возвращает None, добавляется строка из 6 символов, указывающая смещение UTC в (со знаком) часах и минутах: ГГГГ-ММ-ДДЧЧ:ММ:СС.мммммм+ЧЧ:ММ или, если микросекунда равна 0 ГГГГ-ММ-ДДЧЧ:ММ:СС+ЧЧ:ММ Необязательный аргумент sep (по умолчанию 'T') представляет собой односимвольный разделитель, помещаемый между датой и временем в результате. Например, >>> >>> из datetime импортировать tzinfo, timedelta, datetime >>> класс TZ(tzinfo): ... def utcoffset(self, dt): вернуть timedelta(минуты=-399) ... >>> datetime(2002, 12, 25, tzinfo=TZ()).isoformat(' ') '2002-12-25 00:00:00-06:39'
0
Для тех, кто ищет решение только для даты, это:
import datetime datetime.date.today().isoformat()
2
Формат времени ISO 8601 не сохраняет имя часового пояса, сохраняется только соответствующее смещение UTC.
Чтобы преобразовать файл ctime в строку времени ISO 8601 с сохранением смещения UTC в Python 3:
>>> импорт ОС >>> из даты и времени импортировать дату и время, часовой пояс >>> ts = os.path.getctime(some_file) >>> dt = datetime.fromtimestamp(ts, timezone.utc) >>> dt.astimezone().isoformat() '2015-11-27T00:29:06.839600-05:00'
В коде предполагается, что ваш местный часовой пояс — восточный часовой пояс (ET) и что ваша система предоставляет правильное смещение UTC для заданной метки времени POSIX ( ts ), т. е. Python имеет доступ к исторической базе данных часовых поясов в вашей системе или часовой пояс имел те же правила на заданную дату.
Если вам нужно портативное решение; используйте модуль pytz , обеспечивающий доступ к базе данных tz:
>>> import os
>>> из даты и времени импортировать дату и время
>>> import pytz # pip install pytz
>>> ts = os.path.getctime(some_file)
>>> dt = datetime.fromtimestamp(ts, pytz.timezone('Америка/Нью-Йорк'))
>>> dt.isoformat()
'2015-11-27T00:29:06.839600-05:00'
В этом случае результат тот же.
Если вам нужно название/аббревиатура/идентификатор часового пояса, сохраните его отдельно.
>>> dt.astimezone().strftime('%Y-%m-%d %H:%M:%S%z (%Z)')
'2015-11-27 00:29:06-0500 (EST)'
Примечание. Нет, : в смещении UTC и EST аббревиатура часового пояса не являются частью формата времени ISO 8601. Это не уникально.
Различные библиотеки/разные версии одной и той же библиотеки могут использовать разные правила часовых поясов для одной и той же даты/часового пояса. Если это будущая дата, то правила могут быть неизвестны. Другими словами, одно и то же время в формате UTC может соответствовать другому местному времени в зависимости от того, какие правила вы используете — сохранение времени в формате ISO 8601 сохраняет время в формате UTC и местное время, соответствующее Текущие правила часовых поясов , используемые на вашей платформе. Возможно, вам придется пересчитать местное время на другой платформе, если она имеет другие правила.
Вам нужно будет использовать os.stat , чтобы получить время создания файла и комбинацию time. и
strftime time.timezone для форматирования:
>>> время импорта
>>> импортировать ОС
>>> t = os.stat('C:/Path/To/File.txt').st_ctime
>>> t = время.местное время(t)
>>> formatted = time.strftime('%Y-%m-%d %H:%M:%S', t)
>>> tz = str.format('{0:+06.2f}', float(time.timezone) / 3600)
>>> final = форматированный + tz
>>>
>>> окончательный
'2008-11-24 14:46:08-02.00'
2
Стандарт RFC-3339 в миллисекундах
Мне нужно было время в этом формате для приложения LoRa, поэтому я придумал это, надеюсь, это поможет:
from datetime import datetime
из времени импортировать strftime
# Получить текущее время в формате: 2021-03-20T16:51:23.644+01:00
защита rfc3339_time_ms():
datetime_now = datetime.utcnow()
# Удалить микросекунды
datetime_now_ms = datetime_now.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3]
# Добавьте часовой пояс в виде "+/-ЧЧММ" и двоеточие в "+/-ЧЧ:ММ"
datetime_now_ms_tz = datetime_now_ms + strftime("%z")
rfc3339_ms_now = datetime_now_ms_tz[:-2] + ":" + datetime_now_ms_tz[-2:]
# print(f"Текущее время в мс в формате RFC-3339: {rfc3339_ms_now}")
вернуть rfc3339_ms_now
1
Поправьте меня, если я ошибаюсь (это не так), но смещение от UTC меняется при переходе на летнее время.
Поэтому вы должны использовать
tz = str.format('{0:+06.2f}', float(time.altzone)/3600)
Я также считаю, что знак должен быть другим:
tz = str.format('{0:+06.2f}', -float(time.altzone) / 3600)
Я могу ошибаться, но я так не думаю.
Пожалуйста, сделайте жизнь проще:
- Используйте время UTC
- Микросекунда
- однострочный код
f"{datetime.datetime.utcnow().isoformat()[:-3]}Z"
вывод:
2022-02-25T02:08:40.684Z
Добавление небольшой вариации на отличный ответ Эстани
Local для ISO 8601 с TimeZone и без информации о микросекундах (Python 3):
импорт даты и времени, время utc_offset_sec = time.altzone, если time.localtime().tm_isdst, иначе time.timezone utc_offset = datetime.timedelta (секунды = -utc_offset_sec) datetime.datetime.now().replace(микросекунда=0, tzinfo=datetime.timezone(offset=utc_offset)).isoformat()
Пример вывода:
'2019-11-06T12:12:06-08:00'
Проверено, что этот вывод может быть проанализирован как Javascript Date , так и C# DateTime / DateTimeOffset
Я согласен с Джареком, и я также отмечаю, что символ-разделитель смещения ISO представляет собой двоеточие, поэтому я думаю, что окончательный ответ должен быть:
isodate.datetime_isoformat(datetime.datetime.now()) + str.format('{0:+06.2f}', -float(time.timezone) / 3600).replace('.', ':')
Я разработал эту функцию:
def iso_8601_format(dt):
"""ГГГГ-ММ-ДДThh:mm:ssTZD (1997-07-16T19:20:30-03:00)"""
если dt равно None:
возвращаться ""
fmt_datetime = dt.strftime('%Y-%m-%dT%H:%M:%S')
tz = dt.utcoffset()
если tz равно None:
fmt_timezone = "+00:00"
еще:
fmt_timezone = str.format('{0:+06.2f}', float(tz.total_seconds() / 3600))
вернуть fmt_datetime + fmt_timezone
импорт даты и времени, время
def convert_enddate_to_seconds (я, тс):
"""Принимает формат ISO 8601 (строка) и конвертирует во время эпохи."""
dt = datetime.datetime.strptime(ts[:-7],'%Y-%m-%dT%H:%M:%S.%f')+\
datetime.timedelta(часы=int(ts[-5:-3]),
минуты=int(ts[-2:]))*int(ts[-6:-5]+'1')
секунды = время.mktime(dt.timetuple()) + dt.микросекунда/1000000.0
вернуть секунды
>>> импорт даты и времени, время
>>> ц = '2012-09-30T15:31:50.
262-08:00'
>>> dt = datetime.datetime.strptime(ts[:-7],'%Y-%m-%dT%H:%M:%S.%f')+ datetime.timedelta(hours=int(ts [-5:-3]), минуты=int(ts[-2:]))*int(ts[-6:-5]+'1')
>>> секунды = время.mktime(dt.timetuple()) + dt.микросекунда/1000000.0
>>> секунд
13489.26
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Парамоторный шлем Icaro Skyrider TZ
| |
| Модели Мотор Части Товары Планеры Советы Учиться Дилеры Галерея |
Шлемы Икаро:
Sena BlueTooth:
Продукты
Ресурсы
|
| |||||||||||||||||||||||||||||||

Что это на фотографии? 50 жжетонов первому отгадавшему.
datetime.now().astimezone().replace(микросекунда=0).isoformat()
>>> 2020-03-20T14:31:43+13:00
strptime("2010-06-04 21:08:12", "%Y-%m-%d %H:%M:%S")
datetime.datetime(2010, 6, 4, 21, 8, 12)
мммммм+ЧЧ:ММ или, если микросекунда равна 0 ГГГГ-ММ-ДДЧЧ:ММ:СС+ЧЧ:ММ
Необязательный аргумент sep (по умолчанию 'T') представляет собой односимвольный разделитель, помещаемый между датой и временем в результате. Например,
>>>
>>> из datetime импортировать tzinfo, timedelta, datetime
>>> класс TZ(tzinfo):
... def utcoffset(self, dt): вернуть timedelta(минуты=-399)
...
>>> datetime(2002, 12, 25, tzinfo=TZ()).isoformat(' ')
'2002-12-25 00:00:00-06:39'
path.getctime(some_file)
>>> dt = datetime.fromtimestamp(ts, timezone.utc)
>>> dt.astimezone().isoformat()
'2015-11-27T00:29:06.839600-05:00'
datetime_isoformat(datetime.datetime.now()) + str.format('{0:+06.2f}', -float(time.timezone) / 3600).replace('.', ':')
— 21,5 дюйма.