Hướng Dẫn Sử Dụng Date Time Trong Python - Openplanning

  • Tất cả tài liệu
  • Java
    • Java Basic
    • Java Collections Framework
    • Java IO
    • Java New IO
    • Java Date Time
    • Servlet/JSP
    • Eclipse Tech
      • SWT
      • RCP
      • RAP
      • Eclipse Plugin Tools
    • XML & HTML
    • Java Opensource
    • Java Application Servers
  • Maven
  • Gradle
  • Servlet/Jsp
  • Thymeleaf
  • Spring
    • Spring Boot
    • Spring Cloud
  • Struts2
  • Hibernate
  • Java Web Service
  • JavaFX
  • SWT
  • Oracle ADF
  • Android
  • iOS
  • Python
  • Swift
  • C#
  • C/C++
  • Ruby
  • Dart
  • Batch
  • Database
    • Oracle
    • MySQL
    • SQL Server
    • PostGres
    • Other Database
  • Oracle APEX
  • Report
  • Client
  • ECMAScript / Javascript
  • TypeScript
  • NodeJS
  • ReactJS
  • Flutter
  • AngularJS
  • HTML
  • CSS
  • Bootstrap
  • OS
    • Ubuntu
    • Solaris
    • Mac OS
  • VPS
  • Git
  • SAP
  • Amazon AWS
  • Khác
    • Chưa phân loại
    • Phần mềm & ứng dụng tiện ích
    • VirtualBox
    • VmWare
Hướng dẫn sử dụng Date Time trong Python
  1. Tổng quan
  2. Khái niệm về Ticks
  3. time module
  4. datetime module
  5. datetime.timedelta
  6. datetime.date

1. Tổng quan

Python cung cấp cho bạn 4 module có liên quan tới ngày tháng và thời gian.
ModuleMô tả
timetime là một module chỉ bao gồm các hàm, và các hằng số liên quan tới ngày tháng và thời gian, không có lớp (class) nào được định nghĩa trong module này.
datetimeModule này định nghĩa một số lớp đại diện cho ngày tháng và thời gian.
calendarModule này chứa các hàm liên quan đến lịch. Nó cũng định nghĩa ra các lớp đại diện cho Lịch, và exception có liên quan.
localeModule này chứa các hàm sử dụng để định dạng (format), hoặc phân tích (parse) ngày tháng và thời gian dựa trên locale (vùng miền, địa lý).
datetime module:datetime là một module, được thiết kế dựa trên hướng đối tượng (object oriented) để làm việc với ngày tháng và thời gian trong Python. Nó có một vài lớp đại diện cho ngày tháng và thời gian.
ClassMô tả
datetime.dateMột đối tượng date đại diện cho ngày tháng (date), không bao gồm thời gian, theo bộ lịch Gregorian (Dương lịch).
datetime.datetimeMột đối tượng datetime đại diện cho ngày tháng (date) và thời gian, theo bộ lịch Gregorian.
datetime.timeMột đối tượng time đại diện cho thời gian (time), không bao gồm ngày tháng (date).
datetime.tzinfoLà một lớp cơ sở trừu tượng (base abstract class) cho các đối tượng thông tin múi giờ (timezone).
datetime.timezoneLà một lớp con trực tiếp của lớp tzinfo, theo chuẩn UTC (Coordinated Universal Time) (Giờ hợp nhất quốc tế).
datetime.timedeltaĐối tượng timedelta mô tả một khoảng thời gian (duration), là khoảng thời gian giữa 2 thời điểm.
calendar module:calendar là một module cung cấp các hàm, và một vài lớp liên quan tới Lịch, nó hỗ trợ tạo (generate) ra hình ảnh của bộ lịch dưới dạng text, html, ....

2. Khái niệm về Ticks

Trong khoa học máy tính, 12h sáng ngày 1 tháng 1 năm 1970 là một thời điểm đặc biệt, nó được sử dụng để bắt đầu đếm thời gian. Thời điểm đặc biệt này được gọi là epoch (Tạm hiểu là kỷ nguyên máy tính). Trong Python, khoảng thời gian giữa thời điểm hiện tại và thời điểm đặc biệt nói trên được tính bằng số giây (seconds). Khoảng thời gian đó được gọi là Ticks.Hàm time() trong module time trả về số giây (seconds) tính từ thời điểm 12h sáng ngày 1 tháng 1 năm 1970 tới hiện tại. Nó trả về một kiểu số chấm động (floating point).ticketExample.py# Nhập khẩu module time. import time; # Số giây tính từ 12h sáng ngày 1-1-1970 tới hiện tại. ticks = time.time() print ("Number of ticks since 12:00am, January 1, 1970: ", ticks)Output:Number of ticks since 12:00am, January 1, 1970: 1492244686.7766237

3. time module

time là một module chỉ bao gồm các hàm, và các hằng số liên quan tới ngày tháng và thời gian, có một vài lớp (class) viết trên C/C++ được định nghĩa trên module này. Chẳng hạn lớp struct_time.Trên module time, thời gian được đại diện bởi Ticks hoặc struct_time. Nó có các hàm để định dạng (format) Ticks hoặc struct_time thành string, và ngược lại phân tích (parse) một string thành Ticks hoặc struct_time.
0tm_year(Ví dụ, 1993)
1tm_monPhạm vi [1, 12]
2tm_mdayPhạm vi [1, 31]
3tm_hourPhạm vi [0, 23]
4tm_minPhạm vi [0, 59]
5tm_secPhạm vi [0, 61]; Xem thêm mô tả phía dưới
6tm_wdayPhạm vi [0, 6], Thứ hai là 0
7tm_ydayPhạm vi [1, 366]
8tm_isdst0, 1 hoặc -1;
N/Atm_zoneViết tắt của tên múi giờ
N/Atm_gmtoffoffset east of UTC in seconds
tm_secPhạm vi giây (second) thực sự là 0 đến 61; điều này được giải thích là giây nhuận (double leap seconds). Mặc dù rất rất hiếm.
Các hàm của time gọi đến các hàm được viết trên ngôn ngữ C. Dưới đây là danh sách các hàm thông dụng, chi tiết hơn bạn có thể tham khảo tài liệu trên website chính thức của Python.Ticks ==> struct_time
HàmMô tả
time.gmtime([secs])Chuyển đổi thời gian tính theo giây từ thời điểm spoch thành một struct_time trong UTC, trong đó cờ dst là 0. Nếu tham số secs không được cung cấp hoặc None, nó sẽ có giá trị mặc định trả về bởi hàm time().
time.localtime([secs])Giống với hàm gmtime() nhưng chuyển đổi thành thời gian địa phương (local time). Và cờ dst có giá trị là 1.
Hàm gmtime([secs])localtime([secs]) đều trả về kiểu struct_time.time_gmtimeExample.pyimport time # 1 giây sau kỷ nguyên máy tính (epoch). # Hàm này trả về một kiểu struct: struct_time ts = time.gmtime(1) print ("1 seconds after epoch: ") print (ts) print ("\n") # Thời điểm hiện tại, giống với time.gmtime( time.time() ) # Hàm này trả về một kiểu struct: struct_time ts = time.gmtime() print ("struct_time for current time: ") print (ts)struct_time ==> TicksBạn có thể chuyển đổi một struct_time hoặc một Tuple đại diện cho thời gian thành Ticks (Số giây tính từ thời điểm epoch).time_mktime_example.pyimport time a_struct_time = time.localtime() print ("Current time as struct_time: "); print (a_struct_time) # Chuyển đổi struct_time hoặc Tuple thành Ticks. ticks = time.mktime(a_struct_time) print ("Ticks: ", ticks) # Một Tuple có 9 phần tử. aTupleTime = ( 2017, 4, 15, 13, 5, 34, 0, 0, 0) print ("\n") print ("A Tuple represents time: ") print (aTupleTime) # Chuyển đổi struct_time hoặc Tuple thành Ticks. ticks = time.mktime(aTupleTime) print ("Ticks: ", ticks)struct_time, Ticks ==> string
HàmMô tả
time.asctime([struct_t])Chuyển đổi một tuple hoặc struct_time đại diện cho một thời gian như được trả về bởi gmtime() hoặc localtime() thành một string như mẫu sau: 'Sun Jun 20 23:21:05 1993'. Nếu tham số struct_t không được cung cấp, thời điểm hiện tại được trả về bởi localtime() sẽ được sử dụng. Thông tin địa phương (locale) không được sử dụng bởi asctime().
time.ctime([secs])Chuyển đổi thời gian theo số giây (seconds) từ thời điểm epoch thành một string đại diện cho thời gian máy tính (local time). Nếu tham số secs không được cung cấp hoặc None, thời gian hiện tại được trả về bởi time() sẽ được sử dụng. ctime(secs) tương đương với asctime(localtime(secs)). Thông tin địa phương (locale) không được sử dụng bởi ctime().
time_asctime_ctime_example.pyimport time # Một Tuple với 9 phần tử. # (Year, month, day, hour, minute, second, wday, yday, isdst) a_tuple_time = (2017, 4, 15 , 22 , 1, 29, 0, 0, 0) a_timeAsString = time.asctime(a_tuple_time) print ("time.asctime(a_tuple_time): ", a_timeAsString) a_struct_time = time.localtime() print ("a_struct_time: ", a_struct_time) a_timeAsString = time.asctime(a_struct_time) print ("time.asctime(a_struct_time): ", a_timeAsString) # Số giây tính từ 12h sáng ngày 1-1-1970 tới hiện tại. ticks = time.time() a_timeAsString = time.ctime(ticks) print ("time.ctime(ticks): ", a_timeAsString)Phân tích và định dạngmodule time cung cấp một số hàm sử dụng để phân tích (parse) một string thành thời gian. Và ngược lại, định dạng (format) thời gian thành một string.
HàmMô tả
time.strptime(string[, format] )Phân tích một string đại diện một thời gian theo một định dạng. Trả về một struct_time giống như được trả về bởi hàm gmtime() hoặc localtime().
time.strftime(format [, t] )Chuyển đổi một Tuple hoặc struct_time đại diện thời gian giống như được trả về bởi hàm gmtime() hoặc localtime() thành một string xác định bởi tham số format. Nếu nó không được cung cấp, thời gian hiện tại được trả về bởi localtime() sẽ được sử dụng. Tham số format phải là một string. ValueError có thể được ném ra (throw) nếu một trường (field) nào đó trong tham số 't' nằm ngoài phạm vi cho phép.
Ví dụ phân tích (parse) một string thành thời gian có kiểu struct_time.time_strptime_example.pyimport time # Một string đại diện thời gian. aStringTime = "22-12-2007 23:30:59" a_struct_time = time.strptime(aStringTime, "%d-%m-%Y %H:%M:%S") print ("a_struct_time:") print (a_struct_time)
Xem thêm về module time:
  • https://docs.python.org/3/library/time.html

4. datetime module

datetime là một module, được thiết kế theo hướng đối tượng để làm việc với ngày tháng và thời gian trong Python. Nó định nghĩa một vài lớp đại diện cho ngày tháng và thời gian.
ClassMô tả
datetime.dateMột đối tượng date đại diện cho một ngày tháng (date), không bao gồm thời gian, theo bộ lịch Gregorian.
datetime.datetimeMột đối tượng datetime đại diện cho một ngày tháng (date) và thời gian, theo bộ lịch Gregorian.
datetime.timeMột đối tượng time đại diện cho thời gian (time), không bao gồm ngày tháng (date).
datetime.tzinfoLà một lớp cơ sở trừu tượng (base abstract class) cho các đối tượng thông tin múi giờ.
datetime.timezoneLà một lớp con trực tiếp của lớp tzinfo, theo chuẩn UTC (Coordinated Universal Time) (Giờ hợp nhất quốc tế).
datetime.timedeltaA timedelta object represents a duration, the difference between two dates or times.

5. datetime.timedelta

timedelta là một lớp nằm trong module datetime, nó mô tả một khoảng thời gian. Là sự khác biệt giữa 2 thời gian.Lớp timedelta có 7 thuộc tính (attribute), đều có giá trị mặc định là 0.
Thuộc tínhMô tảPhạm vi
days-999999999 : 999999999
seconds0 : 86399
microseconds1 seconds = 1000,000 microseconds0 : 999999
milliseconds1 seconds = 1000 milliseconds
minutes
hours
weeks
Các toán tử hỗ trợ.
t1 = t2 + t3t2 = (hours = 10, seconds= 2) t3 = (hours = 1, minutes = 3) --> t1 = (hours= 11, minutes = 3, seconds = 2)
t1 = t2 - t3t2 = (hours = 10, seconds= 2) t3 = (hours = 1, minutes = 3) --> t1 = (hours= 8, minutes = 57, seconds = 2)
t1 = t2 * i t1 = i * t2t2 = (hours = 10, seconds= 2) i = 3 --> t1 = (days =1, hours = 6, seconds= 6)
t1 = t2 t2 = (hours = 25, seconds= 2) --> t1 = (days: 1, hours: 1, seconds: 2)
+t1return t1
-t1t1 = (hours = 10, seconds= 2) --> -t1 = (days = -1, hours = 13, minutes = 59, seconds= 58)
abs(t)Giá trị tuyệt đối, tương đương với +t khi t.days >= 0, và là -t khi t.days < 0. t = (hours= -25, minutes = 3) --> t = (days = -2, hours = 23, minutes = 3) --> abs(t) = (days = 1, hours = 0, minutes = 57)
str(t)Trả về string theo mẫu [D day[s], ][H]H:MM:SS[.UUUUUU], D có thể nhận giá trị âm.
repr(t)Trả về string theo mẫu datetime.timedelta(D[, S[, U]]), D có thể nhận giá trị âm

6. datetime.date

datetime.date là một lớp, đối tượng của nó đại diện cho ngày tháng (date), không bao gồm thông tin thời gianPhương thức khởi tạo (Constructor)** constructor **# MINYEAR <= year <= MAXYEAR # 1 <= month <= 12 # 1 <= day <= số ngày cho bởi year và month. date (year, month, day)Constructor của lớp date có thể phát ra lỗi ValueError nếu các giá trị truyền vào không hợp lệ (nằm ngoài phạm vi cho phép).Các hằng số:
Hằng sốMô tả
date.minBiểu thị ngày đầu tiên trong phạm vi của lớp date, date(MINYEAR, 1, 1).
date.maxBiểu thị ngày cuối cùng trong phạm vi của lớp date, date(MAXYEAR, 12, 31).
date.resolutionSự khác biệt nhỏ nhất giữa các đối tượng date không bằng nhau, timedelta(days=1).
Các toán tử
date2 = date1 + timedeltaCộng thêm một khoảng thời gian, timedelta
date2 = date1 - timedeltaTrừ một khoảng thời gian, timedelta
timedelta = date1 - date2Trừ hai đối tượng date.
date1 < date2So sánh hai đối tượng date.
Các phương thức:
Phương thứcMô tả
date.replace(year=self.year, month=self.month, day=self.day)Trả về một đối tượng date với cùng giá trị, ngoại trừ các giá trị bị thay thế cho bởi tham số. Ví dụ: d == date(2002, 12, 31), d.replace(day=26) == date(2002, 12, 26).
date.timetuple()Trả về một time.struct_time như được trả về bởi time.localtime(). Trong đó giờ, phút và giây bằng 0, và cờ DST là -1. d.timetuple() tương đương với time.struct_time((d.year, d.month, d.day, 0, 0, 0, d.weekday(), yday, -1)), trong đó yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1 là số thứ tự ngày trong năm, ngày 1-1 được gọi là ngày thứ 1.
date.toordinal()Trả về số thứ tự của ngày theo lịch Gregorian, theo đó ngày 1 tháng 1 của năm 1 có thứ tự là 1. Đối với một đối tượng date bất kỳ d, date.fromordinal(d.toordinal()) == d.
date.weekday()Trả về ngày trong tuần có kiểu integer, với thứ hai là 0, thứ ba là 1, .. và chủ nhật là 6. Ví dụ, date(2002, 12, 4).weekday() == 2, thứ tư. Xem thêm isoweekday().
date.isoweekday()Trả về ngày trong tuần là số có kiểu integer (Theo tiêu chuẩn ISO), với thứ hai là 1, thứ ba là 2 và chủ nhật là 7. Ví dụ, date(2002, 12, 4).isoweekday() == 3, Thứ tư. Xem thêm weekday(), isocalendar().
date.isocalendar()Trả về một Tuple có 3 phần tử, (ISO year, ISO week number, ISO weekday).
date.isoformat()Trả về một String đại diện ngày tháng theo định dạng ISO 8601, ‘YYYY-MM-DD’. Ví dụ, date(2002, 12, 4).isoformat() == '2002-12-04'.
date.__str__()Đối với đối tượng date d, str(d) tương đương với d.isoformat().
date.ctime()Trả về String đại diện date, ví dụ date(2002, 12, 4).ctime() == 'Wed Dec 4 00:00:00 2002'. d.ctime() tương đương với time.ctime(time.mktime(d.timetuple())). Hàm ctime() được gọi phù hợp với tiêu chuẩn C khi chạy trên các nền tảng (flatform).
date.strftime(format)Trả về string đại diện date, theo định dạng (format) cho bởi tham số. Các mã định dạng cho giờ phút giây có giá tri 0. Xem thêm hàm strftime()strptime() của module time.
date.__format__(format)Tương tự với date.strftime().

Các hướng dẫn lập trình Python

  • Tra cứu tài liệu Python
  • Các lệnh rẽ nhánh trong Python
  • Hướng dẫn và ví dụ Python Function
  • Lớp và đối tượng trong Python
  • Thừa kế và đa hình trong Python
  • Hướng dẫn và ví dụ Python Dictionary
  • Hướng dẫn và ví dụ Python Lists
  • Hướng dẫn và ví dụ Python Tuples
  • Hướng dẫn sử dụng Date Time trong Python
  • Kết nối cơ sở dữ liệu MySQL trong Python sử dụng PyMySQL
  • Hướng dẫn xử lý ngoại lệ trong Python
  • Hướng dẫn và ví dụ String trong Python
  • Giới thiệu về Python
  • Cài đặt Python trên Windows
  • Cài đặt Python trên Ubuntu
  • Cài đặt PyDev cho Eclipse
  • Quy ước và các phiên bản ngữ pháp trong Python
  • Hướng dẫn lập trình Python cho người mới bắt đầu
  • Vòng lặp trong Python
Show More

Các hướng dẫn lập trình Python

  • Tra cứu tài liệu Python
  • Các lệnh rẽ nhánh trong Python
  • Hướng dẫn và ví dụ Python Function
  • Lớp và đối tượng trong Python
  • Thừa kế và đa hình trong Python
  • Hướng dẫn và ví dụ Python Dictionary
  • Hướng dẫn và ví dụ Python Lists
  • Hướng dẫn và ví dụ Python Tuples
  • Hướng dẫn sử dụng Date Time trong Python
  • Kết nối cơ sở dữ liệu MySQL trong Python sử dụng PyMySQL
  • Hướng dẫn xử lý ngoại lệ trong Python
  • Hướng dẫn và ví dụ String trong Python
  • Giới thiệu về Python
  • Cài đặt Python trên Windows
  • Cài đặt Python trên Ubuntu
  • Cài đặt PyDev cho Eclipse
  • Quy ước và các phiên bản ngữ pháp trong Python
  • Hướng dẫn lập trình Python cho người mới bắt đầu
  • Vòng lặp trong Python
Show More

Các bài viết mới nhất

  • Xử lý lỗi 404 trong Flutter GetX
  • Ví dụ đăng nhập và đăng xuất với Flutter Getx
  • Hướng dẫn và ví dụ Flutter NumberTextInputFormatter
  • Hướng dẫn và ví dụ Flutter multi_dropdown
  • Hướng dẫn và ví dụ Flutter flutter_form_builder
  • Hướng dẫn và ví dụ Flutter GetX obs Obx
  • Hướng dẫn và ví dụ Flutter GetX GetBuilder
  • Từ khoá part và part of trong Dart
  • Hướng dẫn và ví dụ Flutter InkWell
  • Bài thực hành Flutter SharedPreferences
  • Hướng dẫn và ví dụ Flutter Radio
  • Hướng dẫn và ví dụ Flutter Slider
  • Hướng dẫn và ví dụ Flutter SkeletonLoader
  • Chỉ định cổng cố định cho Flutter Web trên Android Studio
  • Hướng dẫn và ví dụ Flutter SharedPreferences
  • Tạo Module trong Flutter
  • Flutter upload ảnh sử dụng http và ImagePicker
  • Bài thực hành Dart http CRUD
  • Hướng dẫn và ví dụ Flutter image_picker
  • Flutter GridView với SliverGridDelegate tuỳ biến
Show More
  • Các hướng dẫn lập trình Python

Từ khóa » Tính Số Ngày Trong Tháng Python