Python как настроить формат даты и времени, используя strftime - PullRequest
0 голосов
/ 27 марта 2020

file.write("%s," %(fake.date_between(start_date=datetime(2001,1,1),end_date= datetime(2015,1,1))).strftime("%m / %Y").replace('0 ',' '))

При записи данных в CSV-файл я хочу, чтобы вывод был в виде monthnumber / year ex 8/2019, но этот код возвращает август-2019 при проверке в CSV-файле. В чем ошибка?

1 Ответ

1 голос
/ 27 марта 2020

«Авг-2019» может быть результатом использования «% b-% Y», а не «% m /% Y». Пожалуйста, проверьте это с помощью do c: https://docs.python.org/2/library/datetime.html#strftime -strptime-поведения

Так как вам нужен вывод типа "8/2019", очевидным выбором для части года является использование " % Y». Но это немного сложнее для части месяца, так как python допускает только вывод нуля с нумерацией c месяца, то есть "% m". Ведущий ноль будет происходить в течение нескольких месяцев, но не всех. Прямая замена не будет работать здесь. Я предлагаю использовать регулярные выражения. Фрагмент ниже показывает, как можно использовать регулярные выражения для удаления начального нуля, если таковой имеется.

import re
import datetime
d = datetime.datetime.now()
d.strftime('%m/%Y') # --> '03/2020'
re.sub('^0', '', d.strftime('%m/%Y')) # --> '3/2020'
...