Форматирование даты и времени Python без нулевого заполнения

Есть ли формат для печати Python datetimes, который не будет использовать нулевое дополнение по датам и времени?

Формат, который я использую сейчас:

mydatetime.strftime('%m/%d/%Y %I:%M%p') 

Результат: 29.02.2012 17:03
Желаемый: 29.02.2012 17:03

Какой формат будет представлять месяц как «2» вместо «02», а время «5:03 PM» вместо «05: 03PM»

  • pythonic способ сортировки списка списков по последнему элементу внутреннего списка
  • HTTPError: ошибка HTTP 403: запрещен
  • Тестирование, если список содержит другой список с Python
  • Поиск значений клавиш со стрелками в Python: почему они являются тройками?
  • Получить все атрибуты объектов в Python?
  • Как создать массив colormap из простого массива в matplotlib
  • numpy: массив 1D с различной формой
  • Python: очистить файл журнала
  • 5 Solutions collect form web for “Форматирование даты и времени Python без нулевого заполнения”

    Параметры форматирования, доступные с помощью datetime.strftime() будут иметь нулевое значение. Конечно, вы можете использовать собственную функцию форматирования, но самым простым решением в этом случае может быть datetime.strftime() результата datetime.strftime() :

     s = mydatetime.strftime('%m/%d/%Y %I:%M%p').lstrip("0").replace(" 0", " ") 

    (То есть, если вы решите, что это действительно стоит того, почему бы просто не оставить нули?)

    Новая система форматирования строк является альтернативой strftime . Это вполне читаемо – действительно, может быть предпочтительнее strftime в этом аккаунте. Не говоря уже о том, что он не имеет нуля:

     >>> '{d.month}/{d.day}/{d.year}'.format(d=datetime.datetime.now()) '3/1/2012' 

    Поскольку вы, вероятно, хотите нулевое заполнение в минутном поле, вы можете сделать это:

     >>> '{d.month}/{d.day}/{d.year} {d.hour}:{d.minute:02}'.format(d=now) '3/1/2012 20:00' 

    Если вы хотите «регулярное» время вместо «военного» времени, вы все равно можете использовать стандартные спецификаторы strftime . Удобно, что для наших целей strftime предоставляет код для 12-часового времени с пробелом вместо начального нуля:

     '{d.month}/{d.day}/{d.year} {d:%l}:{d.minute:02}{d:%p}'.format(d=now) '4/4/2014 6:00PM' 

    Увы, это становится менее читаемым. И, как указывает @mlissner, strftime будет терпеть неудачу на некоторых (всех?) Платформах для дат до 1900 года.

    Другой альтернативный вариант, чтобы избежать «все или ни одного» ведущего нулевого аспекта выше, – это поставить минус перед типом поля:

     mydatetime.strftime('%-m/%d/%Y %-I:%M%p') 

    Затем это: «4/10/2015 03:00 AM»

    Становится: '4/10/2015 3:00 AM'

    При желании вы можете по желанию поставить минус перед днем.

    Принятый ответ не является правильным решением (ИМХО). Собственные документированные методы:

    В Linux «#» заменяется на «-»:

    % -d,% -H,% -I,% -j,% -m,% -M,% -S,% -U,% -w,% -W,% -y,% -Y

    В Windows «-» заменяется на «#»:

    % # d,% # H,% # I,% # j,% # m,% # M,% # S,% # U,% # w,% # W,% # y,% # Y

     #Linux mydatetime.strftime('%-m/%d/%Y %-I:%M%p') # Windows mydatetime.strftime('%#m/%d/%Y %#I:%M%p') 

    Источник: https://msdn.microsoft.com/en-us/library/fe06s4ak.aspx

    Как утверждает Sagneta: трюк # хэша в Windows доступен только для исполняемого файла native python. это не будет работать для реализаций python на основе cygwin.

    Хороший ответ Криса Фримена на Linux.

    На окнах это:

     mydate.strftime('%#m/%#d/%Y') 

    Мысль, которая могла бы помочь.

    Interesting Posts

    Принципы проектирования OO применимы к Python?

    Несколько файлов И выбор папок в QFileDialog?

    Тензорный поток: эффективная подача данных eval / train с использованием бегунов очереди

    Почему кортеж (set ()) == tuple (set ()) 85% времени с включенной хэш-рандомизацией?

    Установка «ring.cx SIP-клиента» на малиновый PI

    Как использовать пример модели PTB от Tensorflow?

    Ресурсы для лексинга, токенизации и разбора в python

    Кодирование пути папки IMAP (IMAP UTF-7) для Python

    '{0}'. Format () быстрее, чем str () и '{}'. Format (), используя IPython% timeit и в противном случае используя чистый Python

    Вывод ячеек ячеек ipython в коде

    Проверка (X) HTML в Python

    Как предотвратить автоматическое экранирование специальных символов в Python

    Быстрая случайная выборка произвольного распределения

    Python + SSH Password auth (нет внешних библиотек или общедоступных / закрытых ключей)?

    Скорость сканирующего сканирования медленная (60 страниц / мин)

    Python - лучший язык программирования в мире.