在django后端格式化小时和分钟

时间:2017-01-26 13:23:09

标签: python django datetime format

我的django app(1.8)中有一个方法。

date_start 字段中获取的日期:2017-01-26 18:00:00+00:00我希望获得小时和分钟。但我的代码不起作用:

@property
def time(self):
    return '{%H:%M}'.format(self.date_start)

2 个答案:

答案 0 :(得分:0)

你会想要这样的东西。您的代码无效*的原因是您需要格式字符串以匹配日期的整个字符串表示形式。之后,您可以提取所需的特定日期/时间组件。

在下面的代码中,我放弃了使用@ason​​gtoruin几小时前告诉我的名为dateutil.parser的第三方库来使用任何格式字符串的需要。

import dateutil.parser

class Foo(object):
    def __init__(self, date_start):
        self.date_start = date_start

    @property
    def time(self):
        date = dateutil.parser.parse(self.date_start)
        return '{:02}:{:02}'.format(date.hour, date.minute)


if __name__ == '__main__':
    foo = Foo('2017-01-26 18:00:00+00:00')
    print(foo.time)  # 18:00

*实际上我假设self.date_start是一个普通的字符串,因为你不清楚它是什么类型的数据以及你得到的问题。

答案 1 :(得分:0)

假设self.start_date产生datetime.datetime个对象,您想使用self.start_date.stftime("{%M:%S}") - 示例:

>>> import datetime
>>> now = datetime.datetime.now()
>>> now.strftime("{%M:%S}")
'{31:52}'