Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
4 ตอบกลับ
23387 มุมมอง

I have datetime field called field1 there i am selecting date & time and i have another field called filed2 there it should display only fields1's time. How can we do this?

As of now i am displaying both date and time. Unable to display only time.


Code:

start_date: fields.datetime('Start Date')
start_time: fields.datetime()
start = datetime.strptime(start_date, "%d-%m-%Y %H:%M:%S") 
value['start_time'] = start.strftime("%d-%m-%Y %H:%M:%S")

This will give o/p in datetime format.I need only time.


Thanks

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Hello Supreeth,

You have to convert the datetime of string into datetime format and then convert it into string by extracting time only:

from datetime import datetime

start_dt = datetime.strptime(start_date, "%d-%m-%Y %H:%M:%S") # convert into datetime fromat
value['start_time'] = datetime.strftime(start_dt, "%H:%M:%S") # convert into string format and extract time only



อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Hello Supreeth,

You can get time by:

        datetime.datetime.now().time()

 It will give you current time.

Thank You.

อวตาร
ละทิ้ง

Thanks Chandni. It's works for me.

คำตอบที่ดีที่สุด

i need to do this from odoo ui ? 

อวตาร
ละทิ้ง
ผู้เขียน คำตอบที่ดีที่สุด

Thank you all,

Got Solution,

start = datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S")
user = self.pool.get('res.users').browse(cr, uid, uid)
tz = pytz.timezone(user.tz) if user.tz else pytz.utc
ran = pytz.utc.localize(start).astimezone(tz)
value['start_time'] = ran.strftime("%I:%M")
อวตาร
ละทิ้ง