Python - Ngày và giờ
Một chương trình Python có thể xử lý ngày và giờ theo một số cách. Chuyển đổi giữa các định dạng ngày tháng là một công việc thường xuyên đối với máy tính. Các mô-đun lịch và thời gian của Python giúp theo dõi ngày và giờ.
Tick là gì?
Khoảng thời gian là số dấu phẩy động tính bằng đơn vị giây. Thời gian cụ thể được biểu thị bằng giây kể từ 00:00:00 giờ ngày 1 tháng 1 năm 1970 (kỷ nguyên).
Có một phổ biến timemô-đun có sẵn bằng Python cung cấp các hàm để làm việc với thời gian và chuyển đổi giữa các biểu diễn. Hàm time.time () trả về thời gian hệ thống hiện tại tính bằng dấu tích kể từ 00:00:00 giờ ngày 1 tháng 1 năm 1970 (kỷ nguyên).
Thí dụ
#!/usr/bin/python
import time; # This is required to include time module.
ticks = time.time()
print "Number of ticks since 12:00am, January 1, 1970:", ticks
Điều này sẽ tạo ra một kết quả như sau:
Number of ticks since 12:00am, January 1, 1970: 7186862.73399
Số học ngày tháng rất dễ thực hiện với tích tắc. Tuy nhiên, các ngày trước kỷ nguyên không thể được trình bày dưới dạng này. Ngày trong tương lai xa cũng không thể được thể hiện theo cách này - điểm giới hạn là vào năm 2038 đối với UNIX và Windows.
TimeTuple là gì?
Nhiều hàm thời gian của Python xử lý thời gian dưới dạng một bộ gồm 9 số, như được hiển thị bên dưới:
Mục lục | Cánh đồng | Giá trị |
---|---|---|
0 | Năm 4 chữ số | 2008 |
1 | tháng | 1 đến 12 |
2 | ngày | 1 đến 31 |
3 | Giờ | 0 đến 23 |
4 | Phút | 0 đến 59 |
5 | Thứ hai | 0 đến 61 (60 hoặc 61 là giây nhuận) |
6 | Ngày trong tuần | 0 đến 6 (0 là Thứ Hai) |
7 | Ngày trong năm | 1 đến 366 (ngày Julian) |
số 8 | Tiết kiệm ánh sáng ban ngày | -1, 0, 1, -1 nghĩa là thư viện xác định DST |
Tuple trên tương đương với struct_timekết cấu. Cấu trúc này có các thuộc tính sau:
Mục lục | Thuộc tính | Giá trị |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1 đến 12 |
2 | tm_mday | 1 đến 31 |
3 | tm_hour | 0 đến 23 |
4 | tm_min | 0 đến 59 |
5 | tm_sec | 0 đến 61 (60 hoặc 61 là giây nhuận) |
6 | tm_wday | 0 đến 6 (0 là Thứ Hai) |
7 | tm_yday | 1 đến 366 (ngày Julian) |
số 8 | tm_isdst | -1, 0, 1, -1 nghĩa là thư viện xác định DST |
Nhận thời gian hiện tại
Để dịch tức thì thời gian từ một giây kể từ giá trị dấu phẩy động của kỷ nguyên thành bộ thời gian, hãy chuyển giá trị dấu phẩy động cho một hàm (ví dụ: localtime) trả về bộ thời gian có tất cả chín mục hợp lệ.
#!/usr/bin/python
import time;
localtime = time.localtime(time.time())
print "Local current time :", localtime
Điều này sẽ tạo ra kết quả sau, có thể được định dạng ở bất kỳ hình thức nào khác có thể trình bày được:
Local current time : time.struct_time(tm_year=2013, tm_mon=7,
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)
Nhận định dạng thời gian
Bạn có thể định dạng bất kỳ lúc nào theo yêu cầu của mình, nhưng phương pháp đơn giản để có thời gian ở định dạng có thể đọc được là asctime () -
#!/usr/bin/python
import time;
localtime = time.asctime( time.localtime(time.time()) )
print "Local current time :", localtime
Điều này sẽ tạo ra kết quả sau:
Local current time : Tue Jan 13 10:17:09 2009
Nhận lịch trong một tháng
Mô-đun lịch cung cấp một loạt các phương pháp để chơi với lịch hàng năm và hàng tháng. Ở đây, chúng tôi in lịch cho một tháng nhất định (tháng 1 năm 2008) -
#!/usr/bin/python
import calendar
cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal
Điều này sẽ tạo ra kết quả sau:
Here is the calendar:
January 2008
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 31
Các thời gian đun
Có một phổ biến timemô-đun có sẵn bằng Python cung cấp các hàm để làm việc với thời gian và chuyển đổi giữa các biểu diễn. Đây là danh sách tất cả các phương pháp có sẵn -
Sr.No. | Chức năng với Mô tả |
---|---|
1 | time.altzone
Chênh lệch của múi giờ DST cục bộ, tính bằng giây về phía tây của UTC, nếu múi giờ được xác định. Điều này là âm nếu múi giờ DST địa phương nằm ở phía đông UTC (như ở Tây Âu, bao gồm cả Vương quốc Anh). Chỉ sử dụng điều này nếu ánh sáng ban ngày không phải là ánh sáng ban ngày. |
2 | time.asctime ([tupletime])
Chấp nhận bộ tuple thời gian và trả về một chuỗi 24 ký tự có thể đọc được, chẳng hạn như 'Thứ ba ngày 11 tháng 12 18:07:14 2008'. |
3 | đồng hồ thời gian( )
Trả về thời gian CPU hiện tại dưới dạng số giây dấu phẩy động. Để đo lường chi phí tính toán của các cách tiếp cận khác nhau, giá trị của time.clock hữu ích hơn so với time.time (). |
4 | time.ctime ([giây])
Giống như asctime (localtime (giây)) và không có đối số giống như asctime () |
5 | time.gmtime ([giây])
Chấp nhận một thời điểm được biểu thị bằng giây kể từ kỷ nguyên và trả về bộ thời gian t với thời gian UTC. Lưu ý: t.tm_isdst luôn là 0 |
6 | time.localtime ([giây])
Chấp nhận thời gian được biểu thị bằng giây kể từ kỷ nguyên và trả về bộ thời gian t với giờ địa phương (t.tm_isdst là 0 hoặc 1, tùy thuộc vào việc áp dụng DST cho giây tức thì theo quy tắc cục bộ). |
7 | time.mktime (tupletime)
Chấp nhận thời điểm được biểu thị dưới dạng bộ thời gian theo giờ địa phương và trả về giá trị dấu phẩy động với thời điểm được biểu thị bằng giây kể từ kỷ nguyên. |
số 8 | time.sleep (giây)
Tạm dừng chuỗi cuộc gọi trong giây giây. |
9 | time.strftime (fmt [, tupletime])
Chấp nhận một thời điểm được biểu thị dưới dạng bộ điều chỉnh thời gian theo giờ cục bộ và trả về một chuỗi biểu thị thời điểm đó như được chỉ định bởi chuỗi fmt. |
10 | time.strptime (str, fmt = '% a% b% d% H:% M:% S% Y')
Phân tích cú pháp str theo chuỗi định dạng fmt và trả về tức thì ở định dạng tuple thời gian. |
11 | time.time ()
Trả về thời gian hiện tại tức thì, một số giây dấu phẩy động kể từ kỷ nguyên. |
12 | time.tzset ()
Đặt lại các quy tắc chuyển đổi thời gian được sử dụng bởi các quy trình thư viện. Biến môi trường TZ chỉ định cách thực hiện điều này. |
Hãy để chúng tôi đi qua các chức năng ngắn gọn -
Có hai thuộc tính quan trọng sau đây có sẵn với mô-đun thời gian:
Sr.No. | Thuộc tính với Mô tả |
---|---|
1 | time.timezone Thuộc tính time.timezone là khoảng thời gian chênh lệch tính bằng giây của múi giờ địa phương (không có DST) từ UTC (> 0 ở Châu Mỹ; <= 0 ở hầu hết Châu Âu, Châu Á, Châu Phi). |
2 | time.tzname Thuộc tính time.tzname là một cặp chuỗi phụ thuộc vào ngôn ngữ, là tên của múi giờ địa phương không có và có DST, tương ứng. |
Các lịch Mô-đun
Mô-đun lịch cung cấp các chức năng liên quan đến lịch, bao gồm các chức năng in lịch văn bản cho một tháng hoặc năm nhất định.
Theo mặc định, lịch lấy Thứ Hai là ngày đầu tiên trong tuần và Chủ Nhật là ngày cuối cùng. Để thay đổi điều này, hãy gọi hàm calendar.setfirstweekday ().
Đây là danh sách các chức năng có sẵn với mô-đun lịch -
Sr.No. | Chức năng với Mô tả |
---|---|
1 | calendar.calendar(year,w=2,l=1,c=6) Trả về một chuỗi nhiều dòng có lịch cho năm được định dạng thành ba cột cách nhau bởi c dấu cách. w là chiều rộng tính bằng ký tự của mỗi ngày; mỗi dòng có độ dài 21 * w + 18 + 2 * c. l là số dòng cho mỗi tuần. |
2 | calendar.firstweekday( ) Trả về cài đặt hiện tại cho ngày trong tuần bắt đầu mỗi tuần. Theo mặc định, khi lịch được nhập lần đầu tiên, giá trị này là 0, nghĩa là Thứ Hai. |
3 | calendar.isleap(year) Trả về True nếu năm là năm nhuận; ngược lại, Sai. |
4 | calendar.leapdays(y1,y2) Trả về tổng số ngày nhuận trong các năm trong phạm vi (y1, y2). |
5 | calendar.month(year,month,w=2,l=1) Trả về một chuỗi nhiều dòng với lịch cho tháng tháng trong năm, một dòng mỗi tuần cộng với hai dòng tiêu đề. w là chiều rộng tính bằng ký tự của mỗi ngày; mỗi dòng có độ dài 7 * w + 6. l là số dòng cho mỗi tuần. |
6 | calendar.monthcalendar(year,month) Trả về một danh sách các số nguyên. Mỗi danh sách phụ biểu thị một tuần. Các ngày bên ngoài tháng tháng trong năm được đặt thành 0; các ngày trong tháng được đặt thành ngày trong tháng, 1 trở lên. |
7 | calendar.monthrange(year,month) Trả về hai số nguyên. Mã đầu tiên là mã của ngày trong tuần của ngày đầu tiên của tháng trong năm; cái thứ hai là số ngày trong tháng. Mã các ngày trong tuần là 0 (Thứ Hai) đến 6 (Chủ Nhật); số tháng là 1 đến 12. |
số 8 | calendar.prcal(year,w=2,l=1,c=6) Như in lịch.calendar (năm, w, l, c). |
9 | calendar.prmonth(year,month,w=2,l=1) Giống như in lịch. Tháng (năm, tháng, tuần, l). |
10 | calendar.setfirstweekday(weekday) Đặt ngày đầu tiên của mỗi tuần thành mã ngày trong tuần là ngày trong tuần. Mã các ngày trong tuần là 0 (Thứ Hai) đến 6 (Chủ Nhật). |
11 | calendar.timegm(tupletime) Sự nghịch đảo của time.gmtime: chấp nhận một thời gian tức thì ở dạng bộ tuple thời gian và trả về cùng một thời điểm dưới dạng số giây dấu phẩy động kể từ kỷ nguyên. |
12 | calendar.weekday(year,month,day) Trả về mã ngày trong tuần cho ngày đã cho. Mã các ngày trong tuần là 0 (Thứ Hai) đến 6 (Chủ Nhật); số tháng là 1 (tháng 1) đến 12 (tháng 12). |
Các mô-đun & chức năng khác
Nếu bạn quan tâm, thì ở đây bạn sẽ tìm thấy danh sách các mô-đun và chức năng quan trọng khác để chơi với ngày và giờ trong Python -
Các datetime Mô-đun
Các pytz Mô-đun
Các dateutil Mô-đun