datetime_selector.py 1.4 KB
import tkinter as tk
from tkcalendar import DateEntry

class DatetimeEntry(tk.Frame):
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs)

        # add the date selection
        self.date = DateEntry(self, date_pattern = "y-mm-dd")

        # pack the hours, minutes and seconds in a frame
        self.time_frame = tk.Frame(self)

        # hours, minutes, seconds
        self.hours = tk.Spinbox(self.time_frame,from_=0,to=23, wrap=True, format="%02.0f", width=3)
        self.minutes= tk.Spinbox(self.time_frame,from_=0,to=59, wrap=True, format="%02.0f", width=3)
        self.seconds = tk.Spinbox(self.time_frame,from_=0,to=59, wrap=True, format="%02.0f", width=3)

        #self.hours.grid(row=0, column=0)
        #self.minutes.grid(row=0, column=1)
        #self.seconds.grid(row=0, column=2)
        self.hours.pack(side=tk.LEFT, fill=tk.X, expand=0)
        self.minutes.pack(side=tk.LEFT, fill=tk.X, expand=0)
        self.seconds.pack(side=tk.LEFT, fill=tk.X, expand=0)

        # pack it up
        #self.date.grid(row=0, column=0)
        #self.time_frame.grid(row=0, column=1)
        self.date.pack(side=tk.LEFT, fill=tk.X, expand=1)
        self.time_frame.pack(side=tk.LEFT, fill=tk.X, expand=1)
    def get(self):
        # return time value
        return "{}T{}:{}:{}Z".format(self.date.get(), self.hours.get(), self.minutes.get(), self.seconds.get())