8

Как вывести дату в стандартном формате?

28

Я столкнулся с проблемой в своем коде. Вот он:

import datetime
today = datetime.date.today()
print(today)

Этот код выводит: 2008-11-22, что именно то, что мне нужно.

Однако, когда я пытаюсь добавить это значение в список, все начинает вести себя "странно". Вот код, который я использую:

import datetime
mylist = [datetime.date.today()]
print(mylist)

В результате я получаю вывод: [datetime.date(2008, 11, 22)]. Как я могу получить простую строку с датой, например, 2008-11-22?

5 ответ(ов)

2

Объекты date, datetime и time в Python поддерживают метод strftime(format), который позволяет создавать строку, представляющую время в соответствии с заданным форматом.

Вот список кодов форматов с их направлением и значением:

%a  Сокращённое название дня недели с учётом локали.
%A  Полное название дня недели с учётом локали.
%b  Сокращённое название месяца с учётом локали.
%B  Полное название месяца с учётом локали.
%c  Соответствующее представление даты и времени с учётом локали.
%d  День месяца в десятичном формате [01,31].
%f  Микросекунда в десятичном формате [0,999999], дополненная нулями слева.
%H  Час (24-часовой формат) в десятичном формате [00,23].
%I  Час (12-часовой формат) в десятичном формате [01,12].
%j  День года в десятичном формате [001,366].
%m  Месяц в десятичном формате [01,12].
%M  Минуты в десятичном формате [00,59].
%p  Соответствующий AM или PM с учётом локали.
%S  Секунда в десятичном формате [00,61].
%U  Номер недели в году (воскресенье как первый день недели).
%w  День недели в десятичном формате [0(воскресенье),6].
%W  Номер недели в году (понедельник как первый день недели).
%x  Соответствующее представление даты с учётом локали.
%X  Соответствующее представление времени с учётом локали.
%y  Год без века в десятичном формате [00,99].
%Y  Год с веком в десятичном формате.
%z  Смещение UTC в формате +HHMM или -HHMM.
%Z  Название часового пояса (пустая строка, если объект naive).
%%  Символ '%' в литерале.

Так мы можем использовать модули datetime и time в Python:

import time
import datetime

print("Время в секундах с начала эпохи: %s" % time.time())
print("Текущая дата и время: ", datetime.datetime.now())
print("Или так: ", datetime.datetime.now().strftime("%y-%m-%d-%H-%M"))

print("Текущий год: ", datetime.date.today().strftime("%Y"))
print("Месяц года: ", datetime.date.today().strftime("%B"))
print("Номер недели в году: ", datetime.date.today().strftime("%W"))
print("День недели: ", datetime.date.today().strftime("%w"))
print("День года: ", datetime.date.today().strftime("%j"))
print("День месяца: ", datetime.date.today().strftime("%d"))
print("День недели: ", datetime.date.today().strftime("%A"))

Результат будет выглядеть примерно так:

Время в секундах с начала эпохи: 1349271346.46
Текущая дата и время: 2012-10-03 15:35:46.461491
Или так: 12-10-03-15-35
Текущий год: 2012
Месяц года: Октябрь
Номер недели в году: 40
День недели: 3
День года: 277
День месяца: 03
День недели: Среда

Это пример того, как работать с датами и временем в Python, используя форматирование.

0

Вот более короткий способ получить строковое представление текущей даты и времени:

>>> import time
>>> time.strftime("%Y-%m-%d %H:%M")
'2013-11-19 09:38'

Этот код использует модуль time, чтобы отформатировать дату и время в желаемом виде.

0

Чтобы конвертировать текущее время в обычный формат, вы можете использовать модуль datetime в Python. Вот пример кода, который показывает, как это сделать:

import datetime

# Получаем текущее время
d_date = datetime.datetime.now()

# Конвертируем в формат: ГГГГ-ММ-ДД ЧЧ:ММ:СС AM/PM
reg_format_date = d_date.strftime("%Y-%m-%d %I:%M:%S %p")
print(reg_format_date)

# Другие форматы дат
# Формат: ДД ММММ ГГГГ ЧЧ:ММ:СС AM/PM
reg_format_date = d_date.strftime("%d %B %Y %I:%M:%S %p")
print(reg_format_date)
# Формат: ГГГГ-ММ-ДД ЧЧ:ММ:СС в 24-часовом формате
reg_format_date = d_date.strftime("%Y-%m-%d %H:%M:%S")
print(reg_format_date)

Результат

При выполнении приведенного выше кода, вы получите вывод, похожий на следующий (значения будут зависеть от текущего времени):

2016-10-06 01:21:34 PM
06 October 2016 01:21:34 PM
2016-10-06 13:21:34

Вы можете комбинировать различные коды формата в strftime, чтобы получить нужный вам стиль отображения даты и времени.

0

Для форматирования даты и времени в Python с помощью метода format, вы можете использовать библиотеку datetime. Вот несколько примеров:

  1. Чтобы получить текущую дату в формате дд.мм.гггг, вы можете сделать так:
from datetime import datetime

print("{:%d.%m.%Y}".format(datetime.now()))

Вывод: '25.12.2013' (в зависимости от текущей даты).

  1. Если вы хотите включить текст в форматированный вывод, можно сделать это следующим образом:
from datetime import datetime

print("{} - {:%d.%m.%Y}".format("Сегодня", datetime.now()))

Вывод: 'Сегодня - 25.12.2013' (в зависимости от текущей даты).

  1. Вы также можете получить день недели для текущей даты:
from datetime import date

print("{:%A}".format(date.today()))

Вывод: 'Среда' (или другой день недели в зависимости от текущей даты).

  1. Если вам нужно создать имя файла на основе имени модуля и текущей даты с временем, вы можете сделать это так:
from datetime import datetime

print('{}__{:%Y.%m.%d__%H-%M}.log'.format(__name__, datetime.now()))

Вывод: '__main__2014.06.09__16-56.log' (в зависимости от текущей даты и времени).

Используя эти примеры, вы можете легко форматировать даты и время в соответствии с вашими потребностями!

0

Простой ответ:

datetime.date.today().isoformat()
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь