我的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)
答案 0 :(得分:0)
你会想要这样的东西。您的代码无效*的原因是您需要格式字符串以匹配日期的整个字符串表示形式。之后,您可以提取所需的特定日期/时间组件。
在下面的代码中,我放弃了使用@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_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}'