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"))

しかし、それは以下のエラーをスローします:

administrator@Ashok-Dev:~/Desktop$ python
testing.py Tomorrow date is2012-11-24
トレースバック (最新のコールが最後):
ファイル "testing.py"、13 行目、<module> 内の
print "tomorrow start date:" + 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
tm_stdate

ではdatetimeなく、strです。を にするdatetimeにはstr、次のようにします。

tm_stdate.isoformat()

また

tm_stdate.strftime(<some format string>)
于 2012-11-23T11:40:03.250 に答える
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 に答える
1

datetime モジュールのドキュメントを見てください: http://docs.python.org/2/library/datetime.html

関数「strftime」が探しているものです。使用方法の例があります。さらに助けが必要な場合は、私に声をかけてください。

于 2012-11-23T11:47:06.647 に答える