# How to Build a Digital Time Clock Using Python

### **What Are We Going to Build?**

![Live GUI Digital Clock Using Python](https://cdn.hashnode.com/res/hashnode/image/upload/v1611257903230/XM3h6Fsb3.gif?auto=format,compress&gif-q=60&format=webm align="left")

This amazing digital clock ⏰

## **What Are We Going to Learn Today?**

```plaintext
1. Tkinter & Time Module
2. Basics of Python: Functions
3. Creating a Tkinter Window, Giving Title to the Window, 
   Setting Background & Setting Label
4. Implementation of the Digital Clock With Detailed Explanation
```

## Step 1: The Design

Hold on! Hold on! Before diving into the development part, an insightful coder must have a clear idea of the project he is going to make. To keep it as simple and elegant as possible, I planned a rectangular digital clock with a black background, white text, and the HH:MM:SS time format. You can choose to add AM/PM as per your liking.

## Step 2: Modules Required:

### 1\. What is the Tkinter module?

For this project, we would be using the Tkinter module. Tkinter is a Python binding to the Tk GUI toolkit. It is the standard Python interface to the Tk GUI toolkit and is Python's de-facto standard GUI. You can access the official documentation of Tkinter Module from [**here**](https://docs.python.org/3/library/tk.html).

### 2\. What is the Time Module?

The time module provides various time-related functions. We use it to retrieve the system time and display it on the screen.

## Step 3: Time to Code!

The first step is to import everything(all classes, functions, and variables) stored inside Tkinter to our program file. To do that we type:

```plaintext
from tkinter import *
```

'\*' stands for all/everything.

After importing Tkinter, I'd like to import a function called strftime from the module time. The strftime() method returns a string representing date and time using date, time, or datetime object. In simpler terms, it retrieves the system time.

```plaintext
from time import strftime
```

Now, I want to create a window for the clock. To do that, I make use of Tk from the Tkinter module.

```plaintext
root = Tk()  # Creates tkinter window
```

Let's give the title to the window as 'Digital Computer Clock.'

```plaintext
root.title("Digital Computer Clock")  # Adds title to tkinter window
```

Creating a function to display time on a label. For this, I will be using the Tkinter Label Widget.

```plaintext
# user defined time function
def time(): 

# fetching the system time in the desired time format and storing inside variable string
    string = strftime("%H:%M:%S %p") #%p for AM/PM
# label variable displaying time retrieved from the computer
    lbl.config(text = string)
# run the function after every 1000ms, that is 1 second
    lbl.after(1000, time)
```

Styling the label widget with font Arial, size 160, bold format, background color as black, and foreground color as white.

```plaintext
lbl = Label(root, font = ("arial", 160, "bold"),bg="black",fg="white")
```

The pack method in Tkinter packs widgets into rows or columns. I want the content to be packed in the center, filling the entire space assigned to it both horizontally and vertically. Lastly, the expand option adds a little space to the widget box if necessary.

```plaintext
lbl.pack(anchor = "center",fill = "both",expand=1)
```

Finally, we call the functions and run the program.

```plaintext
time()
mainloop()
```

## The Final Source Code for the Digital Time Clock Can Be Seen Below :

![Source Code for the Digital Time Clock](https://cdn.hashnode.com/res/hashnode/image/upload/v1611258278552/1WBCfr52b.png?auto=compress,format&format=webp align="left")

Hope you enjoyed my content. Happy Learning!!

For any feedback please mail on: (tripathisneha809@gmail.com)
