8

我可以使用 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"))

但它会引发以下错误:

管理员@Ashok-Dev:~/Desktop$ python testing.py
明天日期是 2012-11-24
Traceback(最近一次调用最后一次):
文件“testing.py”,第 13 行,在 <module> 中
打印“明天开始日期:” + tm_stdate
TypeError: 不能连接 'str' 和 'datetime.datetime' 对象

我需要得到tm_sdt_convert一个可变的结果。如何获得没有错误的输出?

4

4 回答 4

4

像这样的东西可以帮助你

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
于 2012-11-23T11:38:05.767 回答
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)

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

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

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

print "Tomorrow's start date: {0}".format(tm_stdate.isoformat())
于 2012-11-23T11:38:56.807 回答
2
tm_stdate

是一个datetime,不是一个str。把 adatetime变成 a str,你做

tm_stdate.isoformat()

或者

tm_stdate.strftime(<some format string>)
于 2012-11-23T11:40:03.250 回答
1

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

函数“strftime”就是您要寻找的。它有一个关于如何使用它的例子。如果您需要其他帮助,请给我留言。

于 2012-11-23T11:47:06.647 回答