我如何在Python中获得明天的约会?

时间:2012-11-23 11:35:26

标签: 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)
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行,在< module>中           打印“明天开始日期:”+ tm_stdate
      TypeError:无法连接'str'和'datetime.datetime'对象   

我需要将tm_sdt_convert作为变量结果。如何在没有错误的情况下获得输出?

4 个答案:

答案 0 :(得分:2)

您正在连接字符串和日期时间对象。首先将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)

如果您想影响 数据时间对象如何转换为字符串,请使用.strftime() method更精确地格式化日期和时间:

print "Tomorrow's start date: {0}".format(tm_stdate.strftime('%Y-%m-%d'))

或者您可以使用.isoformat() method将字符串格式化为符合标准的特定格式:

print "Tomorrow's start date: {0}".format(tm_stdate.isoformat())

答案 1 :(得分:2)

tm_stdate

datetime,而不是str。要将datetime变为str,您可以

tm_stdate.isoformat()

tm_stdate.strftime(<some format string>)

答案 2 :(得分:1)

这样的事可以帮到你

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

答案 3 :(得分:1)

查看datetime模块文档:http://docs.python.org/2/library/datetime.html

函数'strftime'就是你要找的。它有一个关于如何使用它的例子。如果你需要额外的帮助,请给我一个大喊。