2017-02-21 5 views
0

私は現在、昨日のutc0と今日のutc0の間の顧客の総数を何らかの理由で調べるためにクエリを実行していますが、utc0stripe.Customer.listが間違った顧客を返す

import stripe 
from datetime import datetime, timedelta 
stripe.api_key = app_config.STRIPE_KEY['secret_key'] 

yesterday_utc = datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0) - timedelta(1) 
today_utc = datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0) 
print(len(stripe.Customer.list(created={"gte":yesterday_utc, "lte":today_utc})['data'])) 

私が間違ってUTC時刻を呼んでいるかどうかわからが、これは顧客が作っ返していない昨日+ UTC日のリセット直後に作られた場所

答えて

1

datetime.utcnow()はUTCでの現在のタイムスタンプを返すようなものタイムスタンプの「時分秒」の部分をゼロに置き換えます。これは、UTCの真夜中のタイムスタンプを計算するのと同じことではありません。

あなたのタイムゾーンに応じてUTCの深夜のタイムスタンプを確実に計算する方法については、このStackOverflowの回答を参照してください。https://stackoverflow.com/a/381788/5307473

ストライプのAPIにはUNIXのタイムスタンプが必要なので、datetimeのインスタンスで.strftime('%s')を呼び出して、それらのタイムスタンプをUNIXのタイムスタンプに変換する必要があります。

関連する問題