Skip to content

Commit 5336517

Browse files
authored
added am_pm fixes (#1810)
1 parent b031be0 commit 5336517

1 file changed

Lines changed: 28 additions & 10 deletions

File tree

kivymd/uix/pickers/timepicker/timepicker.py

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -694,26 +694,44 @@ def __init__(self, **kwargs):
694694
am_pm=self._set_current_time,
695695
)
696696
Clock.schedule_once(
697-
lambda x: self.set_time(
698-
datetime.time(hour=int(self.hour), minute=int(self.minute))
699-
)
697+
lambda x: self._set_time_init()
700698
) # default time
701699

700+
def _set_time_init(self):
701+
"""Sets time dialog to current hour/minute/am_pm values at init"""
702+
703+
if int(self.hour) > 12:
704+
self.am_pm = 'pm'
705+
self.hour = str(int(self.hour) - 12)
706+
elif int(self.hour) == 0:
707+
self.am_pm = 'am'
708+
self.hour = '12'
709+
710+
self._set_time_input(self.hour, self.minute)
711+
self._set_dial_time(self.hour, self.minute)
712+
self._set_am_pm(self.am_pm)
713+
self._set_current_time()
714+
702715
def set_time(self, time_obj: datetime.time) -> None:
703716
"""Manually set time dialog with the specified time."""
704-
717+
705718
hour = time_obj.hour
706719
minute = time_obj.minute
707-
708-
if hour > 12:
709-
hour -= 12
710-
mode = "pm"
720+
721+
self._set_time_input(hour, minute)
722+
723+
if hour < 12:
724+
mode = 'am'
711725
else:
712-
mode = "am"
726+
mode = 'pm'
727+
728+
if hour == 0:
729+
hour = 12
730+
elif hour > 12:
731+
hour -= 12
713732

714733
hour = str(hour)
715734
minute = str(minute)
716-
self._set_time_input(hour, minute)
717735
self._set_dial_time(hour, minute)
718736
self._set_am_pm(mode)
719737
self._set_current_time()

0 commit comments

Comments
 (0)