Как напечатать дату в обычном формате? - PullRequest
604 голосов
/ 22 ноября 2008

Это мой код:

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

Это печатает: 2008-11-22 это именно то, что я хочу.

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

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

Это печатает следующее:

[datetime.date(2008, 11, 22)]

Как я могу получить просто простое свидание, как 2008-11-22?

Ответы [ 21 ]

2 голосов
/ 03 сентября 2018

Учитывая тот факт, что вы попросили что-то простое, чтобы сделать то, что вы хотели, вы можете просто:

import datetime
str(datetime.date.today())
2 голосов
/ 22 ноября 2008

Вы можете сделать:

mylist.append(str(today))
1 голос
/ 23 июня 2018
from datetime import date
def time-format():
  return str(date.today())
print (time-format())

это напечатает 6-23-2018, если это то, что вы хотите:)

1 голос
/ 18 ноября 2014

Поскольку print today возвращает то, что вам нужно, это означает, что функция __str__ объекта Today возвращает строку, которую вы ищете.

Так что вы также можете сделать mylist.append(today.__str__()).

1 голос
/ 13 апреля 2015

Мне не нравится идея импортировать слишком много модулей для удобства. Я предпочел бы работать с доступным модулем, который в данном случае является datetime, а не вызывать новый модуль time.

>>> a = datetime.datetime(2015, 04, 01, 11, 23, 22)
>>> a.strftime('%Y-%m-%d %H:%M')
'2015-04-01 11:23'
1 голос
/ 22 ноября 2008

Вы можете добавить это как строку?

import datetime 
mylist = [] 
today = str(datetime.date.today())
mylist.append(today) 
print mylist
0 голосов
/ 07 октября 2018

Я не совсем понимаю, но могу использовать pandas для получения времени в нужном формате:

>>> import pandas as pd
>>> pd.to_datetime('now')
Timestamp('2018-10-07 06:03:30')
>>> print(pd.to_datetime('now'))
2018-10-07 06:03:47
>>> pd.to_datetime('now').date()
datetime.date(2018, 10, 7)
>>> print(pd.to_datetime('now').date())
2018-10-07
>>> 

И

>>> l=[]
>>> l.append(pd.to_datetime('now').date())
>>> l
[datetime.date(2018, 10, 7)]
>>> map(str,l)
<map object at 0x0000005F67CCDF98>
>>> list(map(str,l))
['2018-10-07']

Но он хранит строки, но их легко конвертировать:

>>> l=list(map(str,l))
>>> list(map(pd.to_datetime,l))
[Timestamp('2018-10-07 00:00:00')]
0 голосов
/ 22 июня 2017
import datetime
import time

months = ["Unknown","January","Febuary","Marchh","April","May","June","July","August","September","October","November","December"]
datetimeWrite = (time.strftime("%d-%m-%Y "))
date = time.strftime("%d")
month= time.strftime("%m")
choices = {'01': 'Jan', '02':'Feb','03':'Mar','04':'Apr','05':'May','06': 'Jun','07':'Jul','08':'Aug','09':'Sep','10':'Oct','11':'Nov','12':'Dec'}
result = choices.get(month, 'default')
year = time.strftime("%Y")
Date = date+"-"+result+"-"+year
print Date

Таким образом вы можете получить дату в следующем формате: 22 июня 2017 года

0 голосов
/ 19 июня 2016

Вот как отобразить дату в виде (год / месяц / день):

from datetime import datetime
now = datetime.now()

print '%s/%s/%s' % (now.year, now.month, now.day)
0 голосов
/ 10 мая 2015

Вы можете использовать easy_date , чтобы упростить:

import date_converter
my_date = date_converter.date_to_string(today, '%Y-%m-%d')
...