2017-02-21 7 views
0

Ich mache derzeit eine Abfrage zu versuchen, die Gesamtzahl der Kunden zwischen gestern utc0 und heute utc0 zu finden, aus irgendeinem Grund, obwohl es Kunden die erste Stunde oder so nach utc0stripe.Customer.list gibt falsche Kunden zurück

zurückgibt
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'])) 

nicht sicher, ob ich die falsche UTC-Zeit bin Aufruf, aber dies gibt die Kunden, die gestern + diejenigen, die in dem unmittelbar nach dem Zurücksetzen des UTC Tag gemacht

Antwort

1

datetime.utcnow() den aktuellen Zeitstempel zurück in UTC , aber Sie ersetzen dann den "Stunde-Minute-Sekunde" -Teil des Zeitstempels durch Nullen. Das ist nicht dasselbe wie die Zeitmarke für Mitternacht UTC zu berechnen.

In dieser StackOverflow-Antwort erfahren Sie, wie Sie Zeitstempel für Mitternacht UTC abhängig von Ihrer Zeitzone zuverlässig berechnen können: https://stackoverflow.com/a/381788/5307473.

Denken Sie daran, dass die API von Stripe UNIX-Zeitstempel erwartet. Daher sollten Sie .strftime('%s') auf Ihren datetime-Instanzen aufrufen, um sie in UNIX-Zeitstempel zu konvertieren.

Verwandte Themen