【发布时间】:2019-08-06 00:11:13
【问题描述】:
我的问题是我似乎无法根据时间戳过滤我的数据,即日期和 小时。
我的模型如下:
# Create your models here.
class HourlyTick(models.Model):
id = models.IntegerField(primary_key=True)
timestamp = models.DateTimeField(blank=True, null=True)
symbol = models.TextField(blank=True, null=True)
open = models.IntegerField(blank=True, null=True)
high = models.IntegerField(blank=True, null=True)
low = models.IntegerField(blank=True, null=True)
close = models.IntegerField(blank=True, null=True)
trades = models.IntegerField(blank=True, null=True)
volume = models.IntegerField(blank=True, null=True)
vwap = models.FloatField(blank=True, null=True)
class Meta:
managed = False
db_table = 'xbtusd_hourly'
我的看法:
class HourlyTickList(ListAPIView):
serializer_class = HourlyTickSerializer
def get(self, request):
start = request.GET.get('start', None)
end = request.GET.get('end', None)
tz = pytz.timezone("Europe/Paris")
start_dt = datetime.datetime.fromtimestamp(int(start) / 1000, tz)
end_dt = datetime.datetime.fromtimestamp(int(end) / 1000, tz)
qs = HourlyTick.objects.filter(timestamp__range = (start_dt, end_dt))
rawData = serializers.serialize('python', qs)
fields = [d['fields'] for d in rawData]
fieldsJson = json.dumps(fields, indent=4, sort_keys=True, default=str)
return HttpResponse(fieldsJson, content_type='application/json')
我收到的信息是:
RuntimeWarning: DateTimeField HourlyTick.timestamp 收到一个幼稚的 datetime (2017-01-15 06:00:00) 时区支持处于活动状态。
运行时警告)
但是,当我使用make_aware 修复此错误时,我收到错误:
ValueError: Not naive datetime (tzinfo is already set)
我的数据库包含如下所示的数据:
2017-01-06T12:00:00.000Z
由于某种原因,第一个选项返回结果,但它完全忽略了时间。
我该如何解决这个问题?
【问题讨论】:
-
到你天真的日期时间做
import pytzmynaicedatetime.replace(tzinfo=pytz.UTC) -
@YugandharChaudhari 这并不能解决我的问题。