«Боишься так. Я бы сделал HTML-страницу с таблицей стилей, затем с помощью jQuery применил таблицу стилей к стилю attr каждого элемента. Что-то вроде этого:
var styleAttributes = ['color','font-size']; // all the attributes you've applied in your stylesheet
for (i in styleAttributes) {
$('body *').css(styleAttributes[i],function () {
$(this).css(styleAttributes[i]);
});
}
Затем скопируйте DOM и используйте это в письме.
В Python, даты являются объектами. Поэтому при управлении ими Вы управляете объектами, не строками, не метками времени, ни чем-либо.
Любой объект в Python имеют ДВА строковых представления:
регулярное представление, которое используется "печатью", может быть, получают использование эти str()
функция. Это - большую часть времени наиболее распространенный человекочитаемый формат и используется для упрощения дисплея. Так str(datetime.datetime(2008, 11, 22, 19, 53, 42))
дает Вам '2008-11-22 19:53:42'
.
альтернативное представление, которое используется для представления объектной природы (как данные). Это может быть, получают использование эти repr()
функция, и удобно знать, какие данные Ваше управление, в то время как Вы разрабатываете или отлаживаете. repr(datetime.datetime(2008, 11, 22, 19, 53, 42))
дает Вам 'datetime.datetime(2008, 11, 22, 19, 53, 42)'
.
то, Что произошло, - то, что при печати даты с помощью "печати" она использовала str()
, таким образом, Вы видели хорошую строку даты. Но когда Вы распечатали mylist
, Вы распечатали список объектов, и Python пытался представить набор данных, с помощью [1 113].
ну, когда Вы управляете датами, продолжают использовать объекты даты все долго путь. Они получили тысячу полезных методов, и большая часть API Python ожидают, что даты будут объектами.
, Когда Вы захотите отобразить их, просто используйте str()
. В Python хорошая практика должна явно бросить все. Таким образом как раз в то самое время, когда пора распечатать, получить строковое представление Вашей даты с помощью [1 115].
Одна последняя вещь. Когда Вы пытались распечатать даты, Вы распечатали mylist
. Если Вы хотите распечатать дату, необходимо распечатать объекты даты, не их контейнер (список).
, НАПРИМЕР, Вы хотите распечатать всю дату в списке:
for date in mylist :
print str(date)
Примечание, что в том конкретном случае , можно даже опустить str()
, потому что печать будет использовать его для Вас. Но это не должно становиться привычкой:-)
import datetime
mylist = []
today = datetime.date.today()
mylist.append(today)
print mylist[0] # print the date object, not the container ;-)
2008-11-22
# It's better to always use str() because :
print "This is a new day : ", mylist[0] # will work
>>> This is a new day : 2008-11-22
print "This is a new day : " + mylist[0] # will crash
>>> cannot concatenate 'str' and 'datetime.date' objects
print "This is a new day : " + str(mylist[0])
>>> This is a new day : 2008-11-22
, Даты имеют представление по умолчанию, но можно хотеть распечатать их в определенном формате. В этом случае можно получить представление пользовательской строки с помощью strftime()
метод.
strftime()
ожидает строковый шаблон, объясняющий, как Вы хотите отформатировать свою дату.
, НАПРИМЕР:
print today.strftime('We are the %d, %b %Y')
>>> 'We are the 22, Nov 2008'
Вся буква после "%"
представляют формат для чего-то:
%d
день номер %m
, месяц номер %b
, сокращение месяца %y
, год, последний, две цифры %Y
год и т.д.
, Взглянули на официальную документацию , или справочник McCutchen, Вы не можете знать их всех.
С тех пор PEP3101, каждому объекту мог использовать его собственный формат автоматически формат метода любой строки. В случае даты и времени формат является тем же, используемым в strftime. Таким образом, можно сделать то же как выше подобного это:
print "We are the {:%d, %b %Y}".format(today)
>>> 'We are the 22, Nov 2008'
преимущество этой формы состоит в том, что можно также преобразовать другие объекты одновременно. , Даты могут автоматически адаптироваться к местному языку и культуре, если Вы используете их правильный путь, но это немного сложно. Возможно, для другого вопроса на ТАК (Переполнении стека);-)
С введением [1 129] литералы Отформатированной строки (начиная с Python 3.6, 2016-12-23) это может быть записано как [1 161] import datetime
f"{datetime.datetime.now():%Y-%m-%d}"
>>> '2017-06-15'
Локализация
Быстрый отказ от ответа - я изучаю Python всего около 2 недель, поэтому я ни в коем случае не эксперт; поэтому мое объяснение может быть не самым лучшим, и я могу использовать неправильную терминологию. Во всяком случае, здесь это идет.
Я заметил в вашем коде, что когда вы объявили свою переменную today = datetime.date.today()
, вы решили назвать свою переменную именем встроенной функции.
Когда ваша следующая строка кода mylist.append(today)
добавила ваш список, она добавила всю строку datetime.date.today()
, которую вы ранее установили в качестве значения переменной today
, а не просто добавив today()
,
Простое решение, хотя, возможно, не самое подходящее для работы программистами при работе с модулем datetime, это изменить имя вашей переменной.
Вот что я попробовал:
import datetime
mylist = []
present = datetime.date.today()
mylist.append(present)
print present
и он печатает yyyy-mm-dd
.
Можно ли хотеть добавить его как строку?
import datetime
mylist = []
today = str(datetime.date.today())
mylist.append(today)
print mylist
Необходимо преобразовать объект времени даты в строку.
следующий код работал на меня:
import datetime
collection = []
dateTimeString = str(datetime.date.today())
collection.append(dateTimeString)
print collection
Сообщенный мне, если Вы должны еще помочь.
Используйте date.strftime. Аргументы форматирования описаны в документации .
Этот - то, что Вы хотели:
some_date.strftime('%Y-%m-%d')
Этот принимает Локаль во внимание. (сделайте это)
some_date.strftime('%c')