如何将当前日期分配给 odoo v8 中的日期字段?
How to assign current date to a date field in odoo v8?
我想在以下代码中将当前日期分配给日期字段 '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 字段?
试试
'start_date' : '%m-%d-%Y' % datetime.today(),
或
'start_date' : datetime.today().strftime('%m-%d-%Y'),
import time
'start_date':time.strftime("%d/%m/%Y")
日期字段包含一个 today()
方法,仅适用于这种情况:
'start_date': fields.Date.today(),
当然需要先导入fields
:
from openerp import fields
python 日期时间 – Date/time 值操作。
用途: datetime 模块包括函数和 classes 用于日期和时间解析、格式化和算术。
适用于: 2.3 及更高版本
使用日期时间 class 来保存由日期和时间组成的值。与日期一样,有几种方便的 class 方法可以从其他常用值创建日期时间实例。
'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() 是将它们转换为日期时间实例的便捷方法。
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
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
我想在以下代码中将当前日期分配给日期字段 '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 字段?
试试
'start_date' : '%m-%d-%Y' % datetime.today(),
或
'start_date' : datetime.today().strftime('%m-%d-%Y'),
import time
'start_date':time.strftime("%d/%m/%Y")
日期字段包含一个 today()
方法,仅适用于这种情况:
'start_date': fields.Date.today(),
当然需要先导入fields
:
from openerp import fields
python 日期时间 – Date/time 值操作。
用途: datetime 模块包括函数和 classes 用于日期和时间解析、格式化和算术。
适用于: 2.3 及更高版本
使用日期时间 class 来保存由日期和时间组成的值。与日期一样,有几种方便的 class 方法可以从其他常用值创建日期时间实例。
'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() 是将它们转换为日期时间实例的便捷方法。
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
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