Date & Time trong Python

Bài viết được sự cho phép của tác giả Nguyễn Chí Thức

Với Python, bạn có thể dễ dàng thu được Date và Time hiện tại. Chương này sẽ giới thiệu một số phương thức được phổ biến trong khi làm việc với Date và Time bởi sử dụng Python.

  20 tài liệu học Python thiết thực để trở thành lập trình viên chuyên nghiệp
  71 trích đoạn code Python cho các vấn đề hàng ngày của bạn

Lấy Time hiện tại trong Python

Để lấy Time hiện tại, bạn sử dụng hàm tiền định nghĩa localtime(). Hàm localtime() này nhận một tham số là time.time(). Ở đây, time là module, time() là một hàm mà trả về system time hiện tại được biểu diễn dưới dạng số tick (số tích tắc) từ 12:00 am, 1/1/1970. Về cơ bản, tick là một số thực.

import time;
localtime = time.localtime(time.time())
print "Thoi gian hien tai la :", localtime

Kết quả là:

Thoi gian hien tai la : time.struct_time(tm_year=2015, tm_mon=11, tm_mday=29, tm_hour=19, tm_min=16, tm_sec=54, tm_wday=6, tm_yday=333, tm_isdst=0)

Dưới đây là phần giải thích:
Time được trả về là một cấu trúc gồm 9 thuộc tính. Như trong bảng sau:

Thuộc tính Miêu tả
tm_year Trả về năm hiện tại (ví dụ: 2015)
tm_mon Trả về tháng hiện tại (1-12)
tm_mday Trả về ngày hiện tại (1-31)
tm_hour Trả về giờ hiện tại (0-23)
tm_min Trả về phút hiện tại (0-59)
tm_sec Trả về giây hiện tại (0-61 với 60 và 61 là các dây nhuận)
tm_wday Trả về ngày trong tuần (0-6 với 0 là Monday)
tm_yday Trả về ngày trong năm (1-366 kể cả năm nhuận)
tm_isdst Trả về -1, 0 hoặc 1 tức là có xác định DST không

Lấy Time đã được định dạng trong Python
Bạn có thể định dạng bất kỳ time nào theo yêu cầu của bạn, nhưng phương thức đơn giản nhất là asctime(). Đây là một hàm đã được định nghĩa trong time module. Hàm này trả về một time đã được định dạng bao gồm ngày trong tuần, tháng, ngày trong tháng, thời gian và năm. Ví dụ:

import time;

localtime = time.asctime( time.localtime(time.time()) )
print "Thoi gian da duoc dinh dang la :", localtime

Kết quả là:

Thoi gian da duoc dinh dang la : Sun Nov 29 19:16:30 2015

time module trong Python

Có nhiều hàm được định nghĩa sẵn trong time Module mà bạn có thể được sử dụng để làm việc với time.

STT Hàm và Miêu tả
1 Hàm time.altzone trả về offset của DST timezone (số giây)
2 Hàm time.asctime([tupletime]) Chấp nhận một time-tuple và trả về một chuỗi gồm 24 ký tự có thể đọc được ví dụ như Mon Dec 11 18:07:14 2015
3 Hàm time.clock( ) Trả về CPU time hiện tại dưới dạng số giây dạng số thực
4 Hàm time.ctime([secs]) Giống asctime(localtime(secs)) và nếu không có tham số thì giống như asctime( )
5 Hàm time.gmtime([secs]) Chuyển đổi một time được biểu diễn là số giây từ epoch sang một struct_time trong UTC
6 Hàm time.localtime([secs]) Tương tự như gmtime(), nhưng nó chuyển đổi số giây thành local time.
7 Hàm time.mktime(tupletime) Là ngược với hàm localtime(). Trả về một số thực để tương thích với time()
8 Hàm time.sleep(secs) Dừng trình thực thi trong số giây đã cho là secs
9 Hàm time.strftime(fmt[,tupletime]) Chuyển đổi một tuple hoặc struct_time thành một chuỗi được xác định bởi tham số format
10 Hàm time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’) Parse một chuỗi biểu diễn time theo một định dạng đã cho
11 Hàm time.time( ) Trả về time dưới dạng một số thực được diễn đạt bởi số giây từ epoch, trong UTC
12 Hàm time.tzset() Phục hồi các qui ước về thời gian được sử dụng bởi các chương trình con của thư viện. Biến môi trường TZ xác định cách được thực hiện

Có hai thuộc tính quan trọng có sẵn với time Module là:

time.timezone: Thuộc tính time.timezone là số giây trong local timezone (không DST) từ UTC (>0 trong Americas; <=0 trong Europe, Asia, Africa).

time.tzname: Thuộc tính time.tzname là một cặp các chuỗi biểu diễn locale và biểu diễn phụ thuộc, mà tương ứng là tên của local timezone với và không với DST.

calendar Module trong Python

Python cung cấp calendar Module để giúp bạn hiển thị Calendar. Ví dụ:

import calendar
print "Thang hien tai la:"
cal = calendar.month(2014, 6)
print cal

Kết quả là:

Thang hien tai la:
   November 2015
Mo Tu We Th Fr Sa Su
                   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

Có rất nhiều hàm và phương thức đã được xây dựng sẵn trong calendar Module giúp bạn làm việc với Calendar. Dưới đây là một số hàm và phương thức:

Hàm Miêu tả
Hàm prcal(year) In cả calendar của năm
Hàm firstweekday() Trả về ngày trong tuần đầu tiên. Theo mặc định là 0 mà xác định là Monday
Hàm isleap(year) Trả về true nếu năm đã cho là năm nhuận, nếu không là false
Hàm monthcalendar(year,month) Trả về một list gồm các ngày trong tháng đã cho của năm dưới dạng các tuần
Hàm leapdays(year1,year2) Trả về số ngày nhuận từ năm year1 tới năm year2
Hàm prmonth(year,month) In ra tháng đã cho của năm đã cung cấp

Dưới đây là ví dụ cho một số hàm:

Hàm firstweekday()

import calendar
print calendar.firstweekday()

Kết quả là:

0

Hàm isleap(year)

import calendar
print calendar.isleap(2000)

Kết quả là:

True

Hàm monthcalendar(year,month)

import calendar
print calendar.monthcalendar(2015,11)

Kết quả là:

[[0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0]]

Hàm prmonth(year,month)

import calendar
print calendar.prmonth(2015,11)

Kết quả là:

   November 2015
Mo Tu We Th Fr Sa Su
                   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
None

Chúc các bạn thành công!

Bài viết gốc được đăng tải tại ucode.vn

Có thể bạn quan tâm:

Xem thêm Việc làm python hấp dẫn trên TopDev