2016-07-26 33 views
0

私は特定の日付のビジー、無応答、失敗した呼び出しを表示するpythonスクリプトを作成していますが、表示されている日付の書式設定が遅れています。 Twilioのstart_timeとend_timeの "変数"は、 "Mon、25 Jul 2016 16:03:53 +0000"のように表示されます。私はcsvファイル(script_name.py> some_file.csv)に結果を保存しているので、曜日名とコンマを取り除きたい。日付/時刻の書式

settings.pyファイルでは、time_zone変数が正しいもの(America/Chicago)に設定され、USE_TZ変数がtrueに設定されています。しかし、とにかく出力はUTCのままです。

私はPythonについて何も知らないし、call.start_timeをdatetimeに解析しようとしたが失敗している。 。 。私はそれがstart_time = '2016-07-26'のような与えられた値であればそれを行う方法を知っていましたが、値がclient.calls.listの呼び出しから来たときにそれを行う方法がわかりません。 。 。

ご指摘いただければ幸いです!

ありがとうございます!

from twilio.rest import TwilioRestClient 
from datetime import datetime 
from pytz import timezone 
from dateutil import tz 

# To find these visit https://www.twilio.com/user/account 
account_sid = "**********************************" 
auth_token = "**********************************" 

client = TwilioRestClient(account_sid, auth_token) 

for call in client.calls.list(
start_time="2016-07-25", 
end_time="2016-07-25", 
status='failed', 
): 

    print(datetime.datetime.strptime(call.start_time, "%Y-%m-%d %H:%M:%S")) 

答えて

1

私が提供したコードは単純な日付と時刻の形式です。しかし

from datetime import datetime 
from time import sleep 
print('The Time is shown below!') 
while True: 
    time = str(datetime.now()) 
    time = list(time) 
    for i in range(10): 
     time.pop(len(time)-1) 
    time = ('').join(time) 
    time = time.split() 
    date = time[0] 
    time = time[1] 
    print('Time: '+time+', Date: '+date, end='\r') 
    sleep(1) 

あなたが言ったように、「月、2016年7月25日午後04時03分53秒0000」をフォーマットするために見ているだけで、ちょうどこのような何か考える日削除する場合:

day = "Mon, 25 Jul 2016 16:03:53 +0000" 
# Convert to an array 
day = list(day) 
# Remove first 5 characters 
for i in range(5): 
    day.pop(0) 
day = ('').join(day) 
print(day) 

# You can use if statements to determine which day it is to decide how many characters to remove. 
>>> "25 Jul 2016 16:03:53 +0000" 
+0

これは非常に奇妙な回避策です。 'strptime'はそれをうまく解析することができ、2番目のコードブロックは' day [5:] 'だけで処理できます。 – Hobbes

1

形式を解析する必要があるのは、Twilloが提供するタイムスタンプによって決まります。

print(datetime.datetime.strptime(call.start_time, "%a, %d %b %Y %H:%M:%S %z")) 

フォーマット文字列のための素晴らしいガイドがhttp://strftime.org/です:あなたはおそらく適切にタイムスタンプを解析するために、次のフォーマット文字列が必要になります。

文字列から日付を遅延変換するもう1つの良いライブラリは、https://dateutil.readthedocs.io/にあるpython-dateutilライブラリです。