为什么这两个代码之间的日期输出格式不同?一个是datetime对象,另一个似乎是一个字符串(我更喜欢字符串外观相似的格式)。我错过了什么?
def generator():
i=0
while (i<50000):
yield random.randint(-1, 1), datetime.datetime.now()
i=i+1
mynumber = 100
for random_number, current_time in generator():
mynumber += random_number
print mynumber,",", current_time
输出:
>>> 100 , 2013-04-04 09:16:55.730000
101 , 2013-04-04 09:16:55.746000
第二个例子:
def test(timestamp,interval = 1*60):
xt = datetime.datetime(2013, 4,4)
#dt = datetime.datetime.strptime(timestamp, '%d/%m/%Y %H:%M:%S')
dt=timestamp
delta_second =(dt - xt).seconds
normalize_second = (delta_second / interval) * interval
newtime = xt + timedelta(seconds=normalize_second)
print (dt,newtime)
test(datetime.datetime.now())
>>> (datetime.datetime(2013, 4, 4, 9, 21, 12, 386000), datetime.datetime(2013, 4, 4, 9, 21))
答案 0 :(得分:5)
您正在打印不同的内容。在第一个示例中,您直接打印日期时间 ,因此print
会将其转换为str()
。
在第二个示例中,您打印元组,并且始终使用repr()
打印元组:
>>> now = datetime.datetime.now()
>>> print now
2013-04-04 10:28:10.029566
>>> print (now,) # tuple
(datetime.datetime(2013, 4, 4, 10, 28, 10, 29566),)
>>> print repr(now)
datetime.datetime(2013, 4, 4, 10, 28, 10, 29566)
在这两种情况下,您仍在打印datetime
对象。