在视图中更改TimeField和DateField格式

时间:2017-04-09 09:49:44

标签: python django

我有一个非常基本的django模型:

class Day(models.Model):
    date = models.DateField()

class Topic(models.Model):
    day = models.ForeignKey(Day)
    time = models.TimeField(choices=CHOICE_TIME)
    topic = models.CharField(max_length=255)

因此,如果我访问对象的日期和时间,我会得到这些结果:

>>> topic = Topic.objects.all()[5]
>>> print topic.day
2017-03-13
>>>
>>>
>>> print topic.time
14:00:00

我需要使用9 April 2017格式的日期和12小时内的时间格式2 PM在视图中。我怎么解决这个问题?我找到的所有答案都是针对django模板的,但我在视图中需要它。

1 个答案:

答案 0 :(得分:2)

如果你有datetime个对象(否则使用strptime从字符串创建)

In [22]: d_obj = datetime.now()

In [23]: d_obj.strftime("%d %B %Y")
Out[23]: '09 April 2017'

In [24]: d_obj.time().strftime('%I:%M %p')
Out[24]: '03:28 PM'

在django中,DateTimeField返回datetime个对象(此处与d_obj相同),TimeField返回datetime.time个对象(与d_obj.time()相同)