我正在创建一个python脚本,该脚本将显示特定日期的繁忙、无应答和失败调用,但我被显示日期的格式所困扰。Twilio的start_time和end_time"变量"打印如下:"2016年7月25日星期一16:03:53+0000"。我想去掉日期名称和逗号,因为我将结果保存到csv文件中(script_name.py>some_file.csv),而日期名称后面的逗号有点破坏了csv结构。
在settings.py文件中,time_zone变量设置为正确的一个(美国/芝加哥),USE_TZ变量设置为true。但无论如何,输出仍然是UTC。
我对Python一无所知,我试图将call.start_time解析为datetime的东西都失败了。如果它是一个给定的值,比如start_time="2016-07-26",我会知道如何做,但当该值来自client.calls.list中的call时,我不知道如何做…
任何指导都将不胜感激!
谢谢!
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"))
我提供的代码采用简单的日期和时间格式。
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日星期一16: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"
您需要解析的格式由Twillo提供的时间戳决定。您可能需要以下格式字符串来正确解析时间戳:
print(datetime.datetime.strptime(call.start_time, "%a, %d %b %Y %H:%M:%S %z"))
格式化字符串的一个很好的指南是http://strftime.org/.
另一个用于从字符串延迟转换日期的好库是位于https://dateutil.readthedocs.io/.