序列
@api.model
def create(self, vals):
vals['yhf'] = self.env['ir.sequence'].next_by_code('模块的_name')
return super(模块的类名,self).create(vals)
<record id="xxx" model="ir.sequence">
<field name="name">name of this sequence</field>
<field name="code">zerone.book</field>
<field name="prefix">PPA%(year)s%(month)s%(day)s</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>
</record>
name 序列规则得名称,可自定义****code 序列规则得编码,要求最好唯一,使用模块.表名来命确保唯一
prefix 序号编码的前缀
-
年份:%(year)s
-
月份:%(month)s
-
日: %(day)s
padding 填充数据的位数
日期
短日期
fields.Date.today()
长日期
fields.Datetime.now()
时间与字符串转换
日期转字符串
fields.Date.to_string(date)
fields.Datetime.to_string(date)
字符串转日期
fields.Date.to_date(string)
fields.Datetime.to_date(string)
格式化日期
year = fields.Date.from_string(date).strftime('%Y')
时间运算
1、往后加8个小时
datetime.datetime.now() + timedelta(hours=8)
fields.datetime.today() + timedelta(hours=8)
• 1
• 2
2、往后加8天
datetime.datetime.now() + timedelta(days=8)
fields.date.today() + timedelta(days=8)
3、往后加8年
datetime.datetime.now() + relativedelta(years=8)
fields.date.today() + relativedelta(years=8)
4、往后追8月
datetime.datetime.now() + relativedelta(months=8)
fields.date.today() + relativedelta(months=8)
关于月时间的运算
1、取出当前月的第一天和最后一天
import calendar
import datetime
#current_time临时变量,取出当前时间
current_time = datetime.datetime.now()
#调用monthrange(年份,月份),返回一个元组,例如(2,30)
#第一个元素,表示此月第一天周几,周末到周六(0-6)
#第二个元素,表示此月一共有多少天
monthRange = calendar.monthrange(current_time.year, current_time.month)
#取出当前月的第一天
date_from = datetime.date(current_time.year,current_time.month,day=1)
#取出当前月的最后一天
date_to = datetime.date(current_time.year,current_time.month,day=monthRange[1])