如何将当前日期分配给odoo v8中的日期字段?

时间:2015-08-12 12:38:00

标签: python python-2.7 odoo-8 odoo

我想将当前日期分配到日期字段' start_date'在以下代码中:

calendar_obj.create(cr,uid,
             {'name' : rec_res.act_ion,
              'user_id' : rec_res.asgnd_to.id,
              'start_date' : lambda *a:datetime.today().strftime('%m-%d-%Y'),
              'stop_date' : rec_res.due_date,
              'allday' : True,
              'partner_ids' : [(6,0, [rec_res.asgnd_to.partner_id.id])]
             },
context=context)

如何设置当前日期值或将其分配给 start_date 字段?

6 个答案:

答案 0 :(得分:11)

日期字段包含today()方法,仅适用于以下情况:

'start_date': fields.Date.today(),

当然,您需要先导入fields

from openerp import fields

答案 1 :(得分:3)

import time

'start_date':time.strftime("%d/%m/%Y")

答案 2 :(得分:2)

python datetime - 日期/时间值操作。

目的: datetime模块包含用于进行日期和时间分析,格式化和算术的函数和类。

可用于: 2.3及更高版本

使用datetime类来保存由日期和时间组件组成的值。与日期一样,有几种方便的类方法可以从其他常用值创建日期时间实例。

'start_date' : datetime.datetime.now().strftime('%m-%d-%Y')


import datetime

print 'Now    :', datetime.datetime.now()
print 'Today  :', datetime.datetime.today()
print 'UTC Now:', datetime.datetime.utcnow()

d = datetime.datetime.now()
for attr in [ 'year', 'month', 'day', 'hour', 'minute', 'second', 'microsecond']:
    print attr, ':', getattr(d, attr)

结果:

Now    : 2015-08-14 16:27:51.475070
Today  : 2015-08-14 16:27:51.475462
UTC Now: 2015-08-14 10:57:51.475585
year : 2015
month : 8
day : 14
hour : 16
minute : 27
second : 51
microsecond : 475645

格式化和解析

日期时间对象的默认字符串表示形式使用ISO 8601格式(YYYY-MM-DDTHH:MM:SS.mmmmmm)。可以使用strftime()生成替代格式。同样,如果您的输入数据包含可用time.strptime()解析的时间戳值,则datetime.strptime()是将它们转换为datetime实例的便捷方式。

import datetime

format = "%a %b %d %H:%M:%S %Y"

today = datetime.datetime.today()
print 'ISO     :', today

s = today.strftime(format)
print 'strftime:', s

d = datetime.datetime.strptime(s, format)
print 'strptime:', d.strftime(format)

结果:

ISO     : 2015-08-14 16:32:23.914699
strftime: Fri Aug 14 16:32:23 2015
strptime: Fri Aug 14 16:32:23 2015

答案 3 :(得分:1)

尝试

'start_date' : '%m-%d-%Y' % datetime.today(),

'start_date' : datetime.today().strftime('%m-%d-%Y'),

答案 4 :(得分:1)

from datetime import datetime

current_date = fields.Date(string='Date',default=datetime.now())

current_date.strftime("%d-%M-%Y") // strftime function use for the Date Format

答案 5 :(得分:-1)

只获得年份检查

year = datetime.now().strftime("%Y")