我明天怎么走';Python中的日期?

我明天怎么走';Python中的日期?,python,Python,我能够使用Python脚本获得今天的日期和时间。但我需要以数字格式获取明天的日期和时间。所以我使用了下面的脚本 #! /usr/bin/python import datetime import sys import os tomorrow = datetime.date.today() + datetime.timedelta(days=1) print "Tomorrow date is" + str(tomorrow) tm_stme = datetime.time(0, 0, 0)

我能够使用Python脚本获得今天的日期和时间。但我需要以数字格式获取明天的日期和时间。所以我使用了下面的脚本

#! /usr/bin/python
import datetime
import sys
import os

tomorrow = datetime.date.today() + datetime.timedelta(days=1)
print "Tomorrow date is" + str(tomorrow) 
tm_stme = datetime.time(0, 0, 0)
tm_etime = datetime.time(23,59,59)
tm_stdate = datetime.datetime.combine(tomorrow, tm_stme)
tm_enddate = datetime.datetime.combine(tomorrow,tm_etime)

print "tomorrow start date:" + tm_stdate
print "tomorrow end date:" + tm_enddate  

tm_sdt_convert = time.mktime(time.strptime(tm_stdate, "%Y-%m-%d %H:%M:%S"))
tm_tdt_convert = time.mktime(time.strptime(tm_enddate, "%Y-%m-%d %H:%M:%S"))
但它抛出了以下错误:

administrator@Ashok-Dev:~/Desktop$python testing.py
明天的日期是2012年11月24日 回溯(最近一次呼叫最后一次):
文件“testing.py”,第13行,在
打印“明天开始日期:”+tm\u stdate
TypeError:无法连接“str”和“datetime.datetime”对象


我需要将
tm\u sdt\u convert
作为变量结果。如何获得无错误的输出?

类似的东西可以帮助您

In [125]: datetime.datetime.now()
Out[125]: datetime.datetime(2012, 11, 23, 17, 11, 15, 765000)

In [126]: str(datetime.datetime.now() + datetime.timedelta(days=1))
Out[126]: '2012-11-24 17:11:18.203000'
得到个别的东西

In [127]: (datetime.datetime.now() + datetime.timedelta(days=1)).day
Out[127]: 24

In [128]: (datetime.datetime.now() + datetime.timedelta(days=1)).year
Out[128]: 2012

In [129]: (datetime.datetime.now() + datetime.timedelta(days=1)).month
Out[129]: 11

您正在连接一个字符串和一个datetime对象。首先将datetime对象转换为字符串:

print "tomorrow start date:" + str(tm_stdate)
如果改用逗号,则
print
语句将为您进行字符串转换并插入空格:

print "tomorrow start date:", str(tm_stdate)
也可以使用字符串格式:

print "tomorrow start date: {0!s}".format(tm_stdate)
如果要影响datatime对象转换为字符串的方式,请使用更精确地格式化日期和时间:

print "Tomorrow's start date: {0}".format(tm_stdate.strftime('%Y-%m-%d'))
或者,您可以使用将字符串格式化为符合特定标准的格式:

print "Tomorrow's start date: {0}".format(tm_stdate.isoformat())
datetime
,而不是
str
。要将
datetime
转换为
str
,您需要

tm_stdate.isoformat()

tm\u stdate.strftime()

查看日期时间模块文档:


函数“strftime”是您正在寻找的。它有一个关于如何使用它的例子。如果你需要更多的帮助,请给我一声喊

tm_stdate
tm_enddate
都是
datetime对象
Eh?为什么不使用
.year
month
day
属性?转换为字符串,然后拆分为单个组件是获取这些信息的一种非常迂回且无效的方式。@MartijnPieters:使用内置方法,现在变得很简单:)
tm_stdate.isoformat()
tm_stdate.strftime(<some format string>)