![](/img/trans.png)
[英]Python: How to convert unixtimestamp and timezone into datetime object?
[英]How to convert Python datetime object to specific timezone in Django Rest Framework?
我正在使用Django和django-rest-framework实现api的现有代码库。 当您发布这样的日期时间时:
2019-06-21T10:35:46+02:00
它存储在UTC中为2019-06-21 08:35:46+00
(按预期)。 这是因为我有USE_TZ = True
。
当我提供数据时,我也希望再次将其转换为本地化格式( 2019-06-21T10:35:46+02:00
)。 因此,按照此技巧,我将其实现为:
class DateTimeFieldWihTZ(serializers.DateTimeField):
""" Class to make output of a DateTime Field timezone aware """
def to_representation(self, value):
value = timezone.localtime(value)
return super(DateTimeFieldWihTZ, self).to_representation(value)
class PeopleMeasurementSerializer(HALSerializer):
class Meta:
model = PeopleMeasurement
fields = [
'_links',
'id',
'timestamp',
'sensor',
'count'
]
timestamp = DateTimeFieldWihTZ(format='%Y-%m-%d %H:%M:%S')
但这服务于2019-06-21 08:35:46
。 如何再次将其用作2019-06-21T10:35:46+02:00
?
您需要在settings.py
设置TIME_ZONE
。 只需在fields
列表中添加'timestamp'
使用。
为了明确起见,您还可以编写
timestamp = serializers.DateTimeField(format='iso-8601')
请注意,我假设您正在为所有响应使用一个主要时区。 如果您需要返回用户发送的时区的时间,请参阅此答案 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.