IDEl(python3.5)で、営業時間内のみリアルタイムで株価を取得するプログラムを作成しているのですが、時刻のデータの扱いがうまくいきません。(下記にプログラムの関係する箇所と実行結果)
具体的に、説明いたしますと、
datetime.now().strftime("%H:%M:%S")で時刻のみのデータを取得し、
datetime.strptime('09:00:00','%H:%M:%S')で、時刻のデータを定義したのですが、
デバッグ文を入れて調べてみたら、datetime.strptime('09:00:00','%H:%M:%S')では、1900-01-01 09:00:00となり、余分な1900-01-01 が付いてきてしまい、時刻の比較が
出来なく、エラーになってしまいます。
色々調べてみたのですが、良い方法が見つかりません。ご存知の方がいましたら、教えていただけませんでしょうか。よろしくお願いいたします。
取引時間のみグラフ化(9:00-11:30、12:30-15:00)
strptimeは「文字列」を「日付.時間」に変換します。
t1=datetime.strptime('09:00:00','%H:%M:%S')
t2=datetime.strptime('11:30:00','%H:%M:%S')
t3=datetime.strptime('12:30:00','%H:%M:%S')
t4=datetime.strptime('15:00:00','%H:%M:%S'.
.
.
.
現在の時刻を、時、分、秒で取得します
time_ = datetime.now().strftime("%H:%M:%S")
1カラム目に時間を挿入します
time_list.append(time_)
print('time_(時間) = ',time_ )#デバッグ文
print('t1 = ', t1)#デバッグ文
time_d = datetime.strptime(time_,'%H:%M:%S')
print('time_d = ',time_d)#デバッグ文
#取引時間のみグラフ化(9:00-11:30、12:30-15:00)
if( t1 <= time_ <= t2 or t3 <= time_ <= t4) :
.
.
実行結果
time_(時間) = 11:21:00
t1 = 1900-01-01 09:00:00
time_d = 1900-01-01 11:21:00
Traceback (most recent call last):
File "C:/Users/momo/Desktop/時間間隔株価グラフOK.py", line 63, in <module>
if( t1 <= time_ <= t2 or t3 <= time_ <= t4) :
TypeError: unorderable types: datetime.datetime() <= str()
回答2件
あなたの回答
tips
プレビュー