Python Kiểu dữ liệu Datetime

Trong các phần trước chúng ta đã tìm hiểu về các kiểu dữ liệu trong python như: kiểu dữ liệu số, kiểu dữ liệu chuỗi, kiểu dữ liệu list, kiểu dữ liệu tuple, kiểu dữ liệu dictionary, kiểu dữ liệu set. Ở bài này chúng ta sẽ đi tìm hiểu về một kiểu dữ liệu cũng rất hay dùng trong khi lập trình python, đó là kiểu dữ liệu thời gian trong python.

Python sử dụng các module thời gian sau : calendar, datetime, date, time để thao tác với các hàm về thời gian.

Để sử dụng các kiểu dữ liệu thời gian trong ptyhon này, bạn cần phải import các thư viện thời gian đó vào chương trình python.

Cú pháp import thư viện thời gian vào chương trình python như sau:

Ví dụ

import calendar
import datetime
import time


# sử dung calendar: Lấy ngày đầu tiên của tuần trong python
first_week_day = calendar.firstweekday()
print(first_week_day)

# sử dụng datetime:  lấy thời gian hiện tại
x = datetime.datetime.now()
print(x) 

# sử dụng time: lấy thời gian
time_tuple = time.localtime() # lấy struct_time
time_string = time.strftime("%Y/%m/%d, %H:%M:%S", time_tuple)
print(time_string)

Kết quả :

0
2022-01-10 14:17:25.829255
2022/01/10, 14:17:25

Module Calendar trong python:

Module calendar cho phép tính toán lịch và cung cấp các hàm liên quan đến lịch. Sau đây là một số hàm và phương thức thường dùng của Module Calendar.

  • Hàm prcal(year) : là hàm in lịch (calendar) của cả năm trong python.

Ví dụ

import calendar
lich_year = calendar.prcal(2022)
print(lich_year)

Kết quả :

  • Hàm isleap(year): Đây là hàm kiểm tra năm đó có phải là nhuận hay không, hàm sẽ trả về giá trị là True nếu năm đó là năm nhuận.

Ví dụ

import calendar

nam_nhuan = calendar.isleap(2024)
if nam_nhuan==True:
    print("Nam 2024 la nam nhuan.")
else:
    print("Năm 2024 khong phai la nam nhuan.")

Kết quả :

Nam 2024 la nam nhuan.

  • Hàm leapdays(year1,year2): Hàm này kiểm tra số ngày nhuận trong python.

Ví dụ

import calendar

so_ngay_nhuan = calendar.leapdays(2024,2025)
print(so_ngay_nhuan)

Kết quả :

So ngay nhuan la:  1

  • Hàm prmonth(year,month): Hàm lấy lịch các ngày của một tháng trong python.

Ví dụ

import calendar

lich_month = calendar.prmonth(2022,1)
print(lich_month)

Kết quả :

  • Hàm _prevmonth() và _nextmonth() : Là hàm lấy tháng trước và tháng tiếp theo trong python.

Ví dụ

import calendar

thang_truoc = calendar._prevmonth(2022,1)
print("Thang truoc la: ",thang_truoc)

thang_ketiep = calendar._nextmonth(2022,1)
print("Thang tiep theo la:",thang_ketiep)

Kết quả :

Thang truoc la:  (2021, 12)
Thang tiep theo la: (2022, 2)

  • Hàm monthcalendar(year,month):

Hàm lấy các ngày trong tháng dưới dạng tuần, hàm này trả về một list các ngày trong tháng trong python.

Ví dụ

import calendar

all_days_of_month = calendar.monthcalendar(2022,1)
print(all_days_of_month)

Kết quả :

[[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27], [28, 29, 30, 31, 0, 0, 0]]

  • Hàm firstweekday(): Hàm này lấy ngày đầu tiên của tuần trong python.

Ví dụ

import calendar

first_week_day = calendar.firstweekday()
print("Ngay dau tien trong tuan la:",first_week_day)

Kết quả :

Ngay dau tien trong tuan la: 0

  • Hàm setfirstweekday(): Hàm thiết lập ngày đầu tiên trong tuần là ngày nào. ví dụ nếu bạn muốn hiển thị ngày thứ 6 (Friday) là ngày đầu tiên trong tuần thì sử dụng hàm setfirstweekday() như sau:

Ví dụ

import calendar

calendar.setfirstweekday(calendar.FRIDAY)
print(calendar.prmonth(2022,1))

Kết quả :

Module Datetime trong python:

Hàm datetime trong python cho phép bạn thao tác và làm việc với ngày giờ và một số mốc thời gian khác. Sau đây là một số cách sử dụng datetime trong python:

Cách lấy ngày hiện tại date trong python.

Ví dụ

import datetime

Ngay_hien_tai = datetime.date.today()
print("Ngay hien tai la:", Ngay_hien_tai)

Kết quả :

Ngay hien tai la: 2022-01-12

Cách lấy ngày giờ hiện tại datetime trong python.

Ví dụ

import datetime

Ngay_Gio_hien_tai = datetime.datetime.now()
print("Ngay gio hien tai la:", Ngay_Gio_hien_tai)

Kết quả :

Ngay gio hien tai la: 2022-01-12 15:17:20.375777

Cách sử dụng hàm strtime() để định dạng kiểu thời gian trong python.

Ví dụ

import datetime

Time_fomat = datetime.datetime(2022,1,12)
print("Su dung ham strtime() de dinh dang:",Time_fomat.strftime("%Y-%m-%d"))

Kết quả :

Su dung ham strtime() de dinh dang: 2022-01-12

Ngoài ra bạn có thể sử dụng hàm strtime() với các mã code tham số trong danh sách bên dưới để đưa về kiểu định dạng thời gian bạn muốn sử dụng.

Mã code định dạngMô tảKết quả
%aWeekday, short versionWed
%AWeekday, full versionWednesday
%wWeekday as a number 0-6, 0 is Sunday3
%dDay of month 01-3131
%bMonth name, short versionDec
%BMonth name, full versionDecember
%mMonth as a number 01-1212
%yYear, short version, without century18
%YYear, full version2018
%HHour 00-2317
%IHour 00-1205
%pAM/PMPM
%MMinute 00-5941
%SSecond 00-5908
%fMicrosecond 000000-999999548513
%zUTC offset+0100 
%ZTimezoneCST 
%jDay number of year 001-366365
%UWeek number of year, Sunday as the first day of week, 00-5352
%WWeek number of year, Monday as the first day of week, 00-5352
%cLocal version of date and timeMon Dec 31 17:41:00 2018
%CCentury20
%xLocal version of date12/31/18
%XLocal version of time17:41:00
%%A % character%
%GISO 8601 year2018
%uISO 8601 weekday (1-7)1
%VISO 8601 weeknumber (01-53)01