Python Ngày Giờ, GiờDelta, Strftime(Format) với các ví dụ

In Python, ngày, giờ và ngày giờ các lớp cung cấp một số hàm để xử lý ngày, giờ và khoảng thời gian. Ngày và giờ trong Python là các đối tượng, vì vậy khi bạn thao tác với chúng, bạn thực sự đang thao tác với các đối tượng chứ không phải chuỗi hoặc dấu thời gian. Bất cứ khi nào bạn thao tác ngày hoặc giờ, bạn cần nhập hàm datetime.

Các lớp ngày giờ trong Python được chia thành 5 lớp chính.

  • date – Chỉ thao tác ngày (Tháng, ngày, năm)
  • time – Thời gian không phụ thuộc vào ngày (Giờ, phút, giây, micro giây)
  • datetime - Kết hợp thời gian và ngày (Tháng, ngày, năm, giờ, giây, micro giây)
  • timedelta— Khoảng thời gian được sử dụng để thao tác ngày tháng
  • tzinfo— Một lớp trừu tượng để xử lý các múi giờ

Cách sử dụng lớp Date & DateTime

Bước 1) Trước khi bạn chạy mã cho định dạng ngày giờ trong Python, điều quan trọng là bạn phải nhập Python mô-đun ngày giờ như trong ảnh chụp màn hình bên dưới.

Sử dụng lớp Ngày & Ngày giờ

Các câu lệnh nhập này là các phần chức năng được xác định trước trong Python thư viện cho phép bạn thao tác ngày và giờ mà không cần viết bất kỳ mã nào.

Hãy xem xét những điểm sau đây trước khi thực hiện Python mã định dạng ngày giờ

from datetime import date

Dòng này cho biết Python trình thông dịch để nhập lớp ngày từ mô-đun datetime trong Python. Chúng tôi không viết mã cho chức năng ngày này mà chỉ nhập nó để sử dụng

Bước 2) Tiếp theo, chúng ta tạo một thể hiện của đối tượng date.

Sử dụng lớp Ngày & Ngày giờ

Bước 3) Tiếp theo, chúng ta in ngày tháng và chạy mã.

Sử dụng lớp Ngày & Ngày giờ

Đầu ra đúng như mong đợi.

In ngày bằng date.today()

date.today Hàm có một số thuộc tính liên quan đến nó. Chúng ta có thể in ngày/tháng/năm riêng lẻ và nhiều thứ khác

Hãy xem một ví dụ

In ngày bằng date.today()

Số ngày trong tuần hôm nay

Hàm date.today() cũng cung cấp cho bạn số ngày trong tuần. Đây là Bảng ngày trong tuần bắt đầu bằng Monday là 0 và Chủ nhật là 6

ngày TuầnSố ngày
Monday 0
Thứ Ba 1
Thứ Tư 2
Thứ Năm 3
Thứ Sáu 4
Thứ Bảy 5
Chủ Nhật 6

Số ngày trong tuần rất hữu ích cho các mảng có chỉ mục phụ thuộc vào Ngày trong tuần.

In ngày bằng date.today()

Python Ngày và giờ hiện tại: now() hôm nay()

Bước 1) Giống như Đối tượng Ngày, chúng ta cũng có thể sử dụng “ĐỐI TƯỢNG NGÀY” in Python. Python các đối tượng ngày và giờ đưa ra ngày cùng với thời gian trong giờ, phút, giây và mili giây.

Python Ngày và giờ hiện tại

Khi chúng tôi thực thi mã cho datetime, nó sẽ đưa ra kết quả có ngày và giờ hiện tại.

Bước 2) Với ĐỐI TƯỢNG DATETIME, bạn cũng có thể gọi lớp thời gian.

Giả sử chúng ta chỉ muốn in thời gian hiện tại mà không có ngày.

t = datetime.time(datetime.now())
  • Chúng tôi đã nhập lớp thời gian. Chúng ta sẽ gán cho nó giá trị thời gian hiện tại bằng cách sử dụng datetime.now()
  • Chúng ta đang gán giá trị của thời gian hiện tại cho biến t.

Và điều này sẽ cho tôi thời gian. Vì vậy hãy chạy chương trình này.

Python Ngày và giờ hiện tại

Được rồi, bạn có thể thấy ở đây tôi đã ghi ngày và giờ. Và dòng tiếp theo, tôi đã có được thời gian cho riêng mình

Bước 3) Chúng ta sẽ áp dụng bộ chỉ mục ngày trong tuần cho arrayList của ngày trong tuần để biết hôm nay là ngày nào

  • Toán tử ngày trong tuần (wd) được gán số từ số (0-6) tùy thuộc vào ngày trong tuần hiện tại. Ở đây chúng ta đã khai báo mảng danh sách theo ngày (Thứ Hai, Thứ Ba, Thứ Tư…Chủ Nhật).
  • Sử dụng giá trị chỉ mục đó để biết đó là ngày nào. Trong trường hợp của chúng tôi, nó là số 2 và đại diện cho Thứ Tư, vì vậy, trong kết quả đầu ra, nó sẽ in ra “Đó là Thứ Tư”.

Python Ngày và giờ hiện tại

Đây là mã hoàn chỉnh để lấy ngày giờ hiện tại bằng cách sử dụng datetime now

from datetime import date
from datetime import time
from datetime import datetime
def main():
    ##DATETIME OBJECTS
    #Get today's date from datetime class
    today=datetime.now()
    #print (today)
    # Get the current time
    #t = datetime.time(datetime.now())
    #print "The current time is", t
    #weekday returns 0 (monday) through 6 (sunday)
    wd=date.weekday(today)
    #Days start at 0 for monday
    days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]
    print("Today is day number %d" % wd)
    print("which is a " + days[wd])

if __name__== "__main__":
    main()

Cách định dạng đầu ra ngày và giờ bằng strftime()

Đến bây giờ chúng ta đã học được cách sử dụng datetime và date đối tượng trong Python. Chúng ta sẽ tiến thêm một bước nữa và tìm hiểu cách sử dụng chức năng định dạng để định dạng Ngày và Giờ.

Bước 1) Đầu tiên chúng ta sẽ xem một bước đơn giản về cách định dạng năm. Nó là tốt hơn để hiểu với một ví dụ.

Định dạng ngày và giờ đầu ra bằng Strftime()

  • Chúng tôi đã sử dụng “hàm strftime” để định dạng.
  • Chức năng này sử dụng khác nhau mã điều khiển để đưa ra một đầu ra.
  • Mỗi mã điều khiển giống với các tham số khác nhau như năm, tháng, ngày trong tuần và ngày [(%y/%Y – Năm), (%a/%A- ngày trong tuần), (%b/%B- tháng), (%d – ngày trong tháng)] .
  • Trong trường hợp của chúng tôi, đó là (“%Y”) giống với năm, nó in ra cả năm cùng với thế kỷ (ví dụ: 2018).

Bước 2) Bây giờ nếu bạn thay thế (“%Y”) bằng chữ thường, tức là ( “%y) và thực thi mã thì đầu ra sẽ chỉ hiển thị (18) chứ không hiển thị (2018). Thế kỷ trong năm sẽ không hiển thị như trong ảnh chụp màn hình bên dưới

Định dạng ngày và giờ đầu ra bằng Strftime()

Bước 3) Hàm strf có thể khai báo ngày, ngày, tháng, năm riêng biệt. Ngoài ra với những thay đổi nhỏ trong mã điều khiển trong hàm strftime, bạn có thể định dạng kiểu văn bản.

Định dạng ngày và giờ đầu ra bằng Strftime()

Bên trong hàm strftime nếu bạn thay thế (%a) bằng chữ A viết hoa, tức là (%A), kết quả sẽ in ra là “Thứ Năm” thay vì chỉ viết tắt là “Thứ Sáu”.

Định dạng ngày và giờ đầu ra bằng Strftime()

Bước 4) Với sự trợ giúp của chức năng “Strftime”, chúng ta cũng có thể truy xuất ngày, giờ của hệ thống cục bộ hoặc cả hai.

  1. %C- cho biết ngày giờ địa phương
  2. %x- cho biết ngày địa phương
  3. %X- cho biết giờ địa phương

Định dạng ngày và giờ đầu ra bằng Strftime()

Ở đầu ra, bạn có thể thấy kết quả như mong đợi

Bước 5) “Chức năng strftime” cho phép bạn gọi thời gian ở bất kỳ định dạng nào là 24 giờ hoặc 12 giờ.

Định dạng ngày và giờ đầu ra bằng Strftime()

Chỉ cần xác định mã điều khiển như %I/H cho giờ, % M cho phút, %S cho giây, người ta có thể gọi thời gian cho các định dạng khác nhau

12 giờ thời gian được khai báo [print now.strftime(“%I:%M:%S %p) ]

24 giờ thời gian được khai báo [print now.strftime(“%H:%M”)]

Đây là mã hoàn chỉnh để chuyển đổi datetime thành đối tượng String.

#
#Example file for formatting time and date output
#
from datetime import datetime
def main():
   #Times and dates can be formatted using a set of predefined string
   #Control codes
      now= datetime.now() #get the current date and time
      #%c - local date and time, %x-local's date, %X- local's time
      print(now.strftime("%c"))
      print(now.strftime("%x"))
      print(now.strftime("%X"))
##### Time Formatting ####
      #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM
      print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM
      print(now.strftime("%H:%M")) # 24-Hour:Minute

if __name__== "__main__":
    main()

Timedelta là gì trong Python?

Timedelta trong Python là một đối tượng biểu diễn khoảng thời gian. Nó chủ yếu được sử dụng để tính khoảng thời gian giữa hai ngày và giờ. Nó cũng được sử dụng để truy xuất đối tượng có một số ngày và giờ delta. Đối tượng timedelta hỗ trợ các phép toán như cộng, trừ, nhân, chia, v.v.

Cách sử dụng Timedelta Objects

Với Python Đối tượng timedelta cho phép bạn ước tính thời gian cho cả tương lai và quá khứ. Nói cách khác, đó là khoảng thời gian để dự đoán bất kỳ ngày, ngày hoặc giờ đặc biệt nào.

Hãy nhớ rằng chức năng này không phải để in ra ngày hay giờ mà là để TÍNH TOÁN về tương lai hoặc quá khứ. Chúng ta hãy xem một Python ví dụ về timedelta để hiểu rõ hơn.

Bước 1) Để chạy Timedelta Objects, trước tiên bạn cần khai báo câu lệnh import rồi thực thi mã

Đối tượng Timedelta

  1. Viết câu lệnh import cho timedelta
  2. Bây giờ hãy viết mã để in ra đối tượng theo thời gian delta như được hiển thị trong ảnh chụp màn hình
  3. Chạy mã. Timedelta biểu diễn khoảng thời gian 365 ngày, 8 giờ và 15 phút và in ra cùng một

Gây nhầm lẫn? Bước tiếp theo sẽ giúp-

Bước 2) Hãy lấy ngày giờ hôm nay để kiểm tra xem câu lệnh nhập của chúng ta có hoạt động tốt không. Khi mã được thực thi, nó sẽ in ra ngày hôm nay, điều đó có nghĩa là câu lệnh nhập của chúng tôi đang hoạt động tốt

Đối tượng Timedelta

Bước 3) Chúng ta sẽ xem cách chúng ta có thể lấy ngày một năm kể từ bây giờ thông qua các đối tượng delta. Khi chúng ta chạy mã, nó sẽ đưa ra kết quả như mong đợi.

Đối tượng Timedelta

Bước 4) Một ví dụ khác về cách sử dụng delta thời gian để tính ngày trong tương lai từ ngày và giờ hiện tại

Đối tượng Timedelta

Bước 5) Chúng ta hãy xem xét một ví dụ phức tạp hơn. Tôi muốn xác định còn bao nhiêu ngày nữa là đến năm mới. Sau đây là cách chúng ta sẽ tiến hành

  • Sử dụng hôm nay= date.today() chúng ta sẽ có được ngày hôm nay
  • Chúng tôi biết năm mới luôn diễn ra vào ngày 1 tháng 1,1, nhưng năm đó có thể khác. Sử dụng nyd= date(today.year,XNUMX) chúng ta lưu năm mới vào biến nyd
  • nếu nyd < today: so sánh xem ngày hiện tại có lớn hơn năm mới không. Nếu có, nó sẽ vào vòng lặp while
  • ((today-nyd).days) cho biết sự khác biệt giữa ngày hiện tại và năm mới tính bằng DAYS

Đối tượng Timedelta

Kết quả cho thấy “Ngày đầu năm mới đã trôi qua được 11 ngày”.

Đây là mã làm việc hoàn chỉnh

#
# Example file for working with timedelta objects
#
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta

# construct a basic timedelta and print it
print (timedelta(days=365, hours=8, minutes=15))
# print today's date
print ("today is: " + str(datetime.now()))
# print today's date one year from now
print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365)))
# create a timedelta that uses more than one argument
# print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)))
# How many days until New Year's Day?
today = date.today()  # get todays date
nyd = date(today.year, 1, 1)  # get New Year Day for the same year
# use date comparison to see if New Year Day has already gone for this year
# if it has, use the replace() function to get the date for next year
if nyd < today:
    print ("New Year day is already went by %d days ago" % ((today - nyd).days))

Python 2 Ví dụ

from datetime import date
from datetime import time
from datetime import datetime
def main():
 	##DATETIME OBJECTS
    #Get today's date from datetime class
	today=datetime.now()
	#print today
	# Get the current time
	#t = datetime.time(datetime.now())
	#print "The current time is", t
	#weekday returns 0 (monday) through 6 (sunday)
        wd = date.weekday(today)
	#Days start at 0 for monday
        days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]
        print "Today is day number %d" % wd
        print "which is a " + days[wd]

if __name__== "__main__":
    main()
#
#Example file for formatting time and date output
#
from datetime import datetime
def main():
   #Times and dates can be formatted using a set of predefined string
   #Control codes
      now= datetime.now() #get the current date and time
      #%c - local date and time, %x-local's date, %X- local's time
      print now.strftime("%c")
      print now.strftime("%x")
      print now.strftime("%X")
##### Time Formatting ####   
      #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM
      print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM
      print now.strftime("%H:%M") # 24-Hour:Minute   

if __name__== "__main__":
    main()
#
# Example file for working with timedelta objects
#
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta

# construct a basic timedelta and print it
print timedelta(days=365, hours=8, minutes=15)
# print today's date
print "today is: " + str(datetime.now())
# print today's date one year from now
print "one year from now it will be:" + str(datetime.now() + timedelta(days=365))
# create a timedelta that uses more than one argument
# print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))
# How many days until New Year's Day?
today = date.today()  # get todays date
nyd = date(today.year, 1, 1)  # get New Year Day for the same year
# use date comparison to see if New Year Day has already gone for this year
# if it has, use the replace() function to get the date for next year
if nyd < today:
    print "New Year day is already went by %d days ago" % ((today - nyd).days)

Tổng kết

Để thao tác ngày tháng và thời gian theo cả cách đơn giản và phức tạp, mô-đun datetime cung cấp các lớp hoặc danh mục khác nhau như

  • date – Chỉ thao tác ngày (Tháng, ngày, năm)
  • time – Thời gian không phụ thuộc vào ngày (Giờ, phút, giây, micro giây)
  • datetime - Kết hợp thời gian và ngày (Tháng, ngày, năm, giờ, giây, micro giây)
  • timedelta— Khoảng thời gian được sử dụng để thao tác ngày tháng
  • tzinfo— Một lớp trừu tượng để xử lý các múi giờ

Sử dụng các đối tượng ngày giờ

  • Nhập đối tượng ngày giờ trước khi thực thi mã là bắt buộc
  • Sử dụng hàm date.today để in từng ngày/tháng/năm cũng như lập chỉ mục ngày
  • Sử dụng đối tượng date.time để lấy thời gian tính bằng giờ, phút, giây và mili giây

Định dạng hết thời gian với “hàm thời gian str f”

  • Sử dụng “hàm thời gian str f” để thay đổi định dạng của năm
  • In ngày, tháng, năm riêng biệt
  • Thời gian gọi ra cho mọi định dạng 12 giờ hoặc 24 giờ

Đối tượng Timedelta

  • Với các đối tượng timedelta, bạn có thể ước tính thời gian cho cả tương lai và quá khứ
  • Tính tổng số ngày còn lại cho ngày đặc biệt (sinh nhật) tính từ thời điểm hiện tại
  • Tính tổng số ngày đã qua cho ngày đặc biệt (sinh nhật) kể từ thời điểm hiện tại

Bản tin Guru99 hàng ngày

Bắt đầu ngày mới của bạn với những tin tức AI mới nhất và quan trọng nhất hiện nay.