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

Python 在django后端格式化小时和分钟,python,django,datetime,format,Python,Django,Datetime,Format,我在django应用程序(1.8)中有一个方法 From date received Fromdate\u start字段:2017-01-26 18:00:00+00:00我想获取小时和分钟。但我的代码不起作用: @property def time(self): return '{%H:%M}'.format(self.date_start) 你会想要这样的。代码不起作用的原因*是您需要格式字符串与日期的整个字符串表示形式相匹配。之后,您可以提取所需的特定日期/时间组件 在下面的代

我在django应用程序(1.8)中有一个方法

From date received Fromdate\u start字段:
2017-01-26 18:00:00+00:00
我想获取小时和分钟。但我的代码不起作用:

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

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

在下面的代码中,我不再需要使用任何格式字符串,而是使用了@asongtoruin几个小时前告诉我的名为
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\u start
是一个简单的字符串,因为您不清楚它是什么类型的数据以及遇到什么问题。

假设
self.start\u date
生成一个
datetime.datetime
对象,您想使用
self.start\u date.stftime({%m:%S}”)
-示例:

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

标准Python模块time和/或datetime中的strftime函数应该会有所帮助。“不起作用”是对问题最糟糕的描述。请用所有相关细节解释发生了什么。