2017-08-31 26 views
1

私はPythonには新しく、毎日7時から実際に経過した分を取得しようとしています。 私はnow_date1とnow_date2を数秒で取得するためにmktimeを使用しています。次に、分を取得するために60を減算して割り算するプランです。現地時間をUNIXに変換する

AttributeError: 'str' object has no attribute 'timetuple

それは、これは正しいアプローチだ: は、しかし、私は次のエラーを取得しますか?

ここでは、文字列を返すstrftimeコード

import time 
import pytz 
from datetime import datetime 
from time import mktime as mktime 

now_date = datetime.now(pytz.timezone('Europe/Bucharest')) 
now_date1 = now_date.strftime('%H:%M:%S') 
now_date2 = now_date.strftime('7:00:00') 
# Convert to Unix timestamp 
d1_ts = time.mktime(now_date1.timetuple()) 
+0

'文字列を返しますstrftime'。むしろ 'now_date2'を時間構造に変換して時間デルタを実行する必要があります。 –

答えて

1

です。あなたが望むものではありません。

あなたはかなり近いですが、timeをミックスに入れる必要はありません。ただ、(How to calculate the time interval between two time stringsに触発さ)、このようなあなたのコードを変更し、datetimeからの時間デルタを使用します。

import pytz 
from datetime import datetime 

now_date = datetime.now(pytz.timezone('Europe/Bucharest')) 

from datetime import datetime 
FMT = '%H:%M:%S' 
now_date1 = now_date.strftime(FMT) 
now_date2 = now_date.strftime('7:00:00') 

tdelta = datetime.strptime(now_date1, FMT) - datetime.strptime(now_date2, FMT) 

print(tdelta) 

私が手に:それはここで12時42分ですので、一致しているようだ6:40:42を。

だけでやる分で結果を取得するには:

tdelta.seconds//60 

(彼らは「以降の日付が... ..などだけで正しい時間/時間/秒、年、月を、持っている1900であることに注意してください使用されていない)

+0

非常に良い。今、ちょうどtdeltaを分に変換する必要があります。どうもありがとうございました ! –

+0

私の編集を参照してください。 'tdelta.seconds // 60' –

0

再私はこのような何かがうまくいくかもしれないと思う:

import time 
import datetime 
from time import mktime as mktime 

#current time 
now_date = datetime.datetime.now() 

#time at 7am 
today = datetime.date.today() 
now_date2 = datetime.datetime(today.year, today.month, today.day, 7, 0, 0, 0) 

#difference in minutes 
(now_date - now_date2).days * 24 * 60 
関連する問題