这是我的代码:

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这样的简单约会?


当前回答

import datetime
print datetime.datetime.now().strftime("%Y-%m-%d %H:%M")

编辑:

根据Cees的建议,我也开始利用时间:

import time
print time.strftime("%Y-%m-%d %H:%M")

其他回答

date、datetime和time对象都支持strftime(格式)方法,在显式格式的控制下创建表示时间的字符串一串

以下是格式代码及其指令和含义的列表。

%a  Locale’s abbreviated weekday name.
%A  Locale’s full weekday name.      
%b  Locale’s abbreviated month name.     
%B  Locale’s full month name.
%c  Locale’s appropriate date and time representation.   
%d  Day of the month as a decimal number [01,31].    
%f  Microsecond as a decimal number [0,999999], zero-padded on the left
%H  Hour (24-hour clock) as a decimal number [00,23].    
%I  Hour (12-hour clock) as a decimal number [01,12].    
%j  Day of the year as a decimal number [001,366].   
%m  Month as a decimal number [01,12].   
%M  Minute as a decimal number [00,59].      
%p  Locale’s equivalent of either AM or PM.
%S  Second as a decimal number [00,61].
%U  Week number of the year (Sunday as the first day of the week)
%w  Weekday as a decimal number [0(Sunday),6].   
%W  Week number of the year (Monday as the first day of the week)
%x  Locale’s appropriate date representation.    
%X  Locale’s appropriate time representation.    
%y  Year without century as a decimal number [00,99].    
%Y  Year with century as a decimal number.   
%z  UTC offset in the form +HHMM or -HHMM.
%Z  Time zone name (empty string if the object is naive).    
%%  A literal '%' character.

这是我们可以使用Python中的datetime和time模块所做的

import time
import datetime

print "Time in seconds since the epoch: %s" %time.time()
print "Current date and time: ", datetime.datetime.now()
print "Or like this: ", datetime.datetime.now().strftime("%y-%m-%d-%H-%M")

print "Current year: ", datetime.date.today().strftime("%Y")
print "Month of year: ", datetime.date.today().strftime("%B")
print "Week number of the year: ", datetime.date.today().strftime("%W")
print "Weekday of the week: ", datetime.date.today().strftime("%w")
print "Day of year: ", datetime.date.today().strftime("%j")
print "Day of the month : ", datetime.date.today().strftime("%d")
print "Day of week: ", datetime.date.today().strftime("%A")

这将打印出如下内容:

Time in seconds since the epoch:    1349271346.46
Current date and time:              2012-10-03 15:35:46.461491
Or like this:                       12-10-03-15-35
Current year:                       2012
Month of year:                      October
Week number of the year:            40
Weekday of the week:                3
Day of year:                        277
Day of the month :                  03
Day of week:                        Wednesday

我讨厌为了方便而导入太多模块的想法。我宁愿使用可用的模块,在本例中是datetime,而不是调用新的模块time。

>>> a = datetime.datetime(2015, 04, 01, 11, 23, 22)
>>> a.strftime('%Y-%m-%d %H:%M')
'2015-04-01 11:23'

甚至

from datetime import datetime, date

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

截止日期:2013年12月25日

or

"{} - {:%d.%m.%Y}".format("Today", datetime.now())

输出:“今天-2013年12月25日”

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

外出:“星期三”

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

输出:'__main____2014.06.09__16-56.log'

from datetime import date

def today_in_str_format():
    return str(date.today())

print (today_in_str_format())

这将打印2018-06-23,如果这是你想要的:)

我的答案是一个简短的免责声明——我只学了大约2周的Python,所以我绝不是专家;因此,我的解释可能不是最好的,我可能使用了不正确的术语。不管怎样,这就是答案。

我在代码中注意到,当您声明变量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。