gon*_*zor 0 python django datetime
我有一个测试,我创建了几个对象:
def test_get_courier_task_returns_couriers_tasks(self):
with patch('django.utils.timezone.now', return_value=make_aware(datetime(2018, 1, 24, 11, 57))):
task1 = TaskFactory()
response = json.loads(MyAPI.get_tasks_list(self.user.username))
print('[*] Response timestamp: {}'.format(response['content'][0]['timestamp']))
Run Code Online (Sandbox Code Playgroud)
设置为 True的Taskhascreated_timestamp字段auto_add_now和上面to_json()使用的方法get_tasks_list():
class Task(models.Model):
created_timestamp = models.DateTimeField(auto_now_add=True)
def to_json(self):
to_return = {
'timestamp': self.created_timestamp.strftime('%d-%m-%Y %H:%M')
}
return to_return
Run Code Online (Sandbox Code Playgroud)
不幸的是,测试给出了这个输出:
[*] 响应时间戳:24-01-2018 10:57
我已经检查过这是时区感知,但不是给我 UTC+1,而是在保存时给我 UTC+0。我需要做什么?我USE_TZ = True在我的设置中已经应用了迁移。这个问题对我的问题没有帮助。
事实证明,明确指定时区有助于:
with patch('django.utils.timezone.now', return_value=datetime(2018, 1, 24, 11, tzinfo=pytz.timezone('utc'))):
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
942 次 |
| 最近记录: |