Trong bài viết này, bạn sẽ học cách thao tác ngày và giờ trong Python với sự trợ giúp của hơn 10 ví dụ. Bạn sẽ tìm hiểu về các đối tượng ngày, giờ, datetime và hẹn giờ. Ngoài ra, bạn sẽ học cách chuyển đổi ngày giờ thành chuỗi và ngược lại. Và, phần cuối cùng sẽ tập trung vào việc xử lý múi giờ trong Python.

Bạn đang xem : datetime datetime trong python

Python có một mô-đun có tên là datetime để làm việc với ngày và giờ. Hãy tạo một vài chương trình đơn giản liên quan đến ngày và giờ trước khi tìm hiểu sâu hơn.

Ví dụ 1: Lấy Ngày và Giờ Hiện tại

 ngày giờ nhập

datetime_object = datetime.datetime.now ()
in (datetime_object)
 

Khi bạn chạy chương trình, đầu ra sẽ giống như sau:

2018-12-19 09: 26: 03.478039 

Tại đây, chúng tôi đã nhập mô-đun datetime bằng cách sử dụng câu lệnh import datetime .

Một trong các lớp được định nghĩa trong mô-đun datetime là lớp datetime . Sau đó, chúng tôi sử dụng phương thức now () để tạo đối tượng datetime chứa ngày và giờ cục bộ hiện tại.

Ví dụ 2: Lấy ngày hiện tại


nhập ngày giờ

date_object = datetime.date.today ()
print (date_object)
 

Khi bạn chạy chương trình, đầu ra sẽ giống như sau:

2018-12-19 

Trong chương trình này, chúng tôi đã sử dụng phương thức today () được định nghĩa trong lớp date để lấy đối tượng date chứa ngày cục bộ hiện tại .

Bên trong datetime là gì?

Chúng tôi có thể sử dụng hàm dir () để nhận danh sách chứa tất cả các thuộc tính của mô-đun.

 ngày giờ nhập

print (dir (datetime))  

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:


['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', ' datetime ',' datetime_CAPI ',' time ',' timedelta ',' timezone ',' tzinfo ']

Các lớp thường được sử dụng trong mô-đun datetime là:

  • ngày Lớp
  • thời gian Lớp
  • lớp học datetime
  • lớp học theo giờ học

Lớp datetime.date

Bạn có thể khởi tạo các đối tượng date từ lớp date . Đối tượng date đại diện cho một ngày (năm, tháng và ngày).

Ví dụ 3: Đối tượng ngày để biểu thị một ngày


nhập ngày giờ

d = datetime.date (2019, 4, 13)
in (d)
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:

Ngày 4 tháng 4 năm 2019 

Nếu bạn đang thắc mắc, thì date () trong ví dụ trên là một hàm tạo của lớp date . Hàm tạo nhận ba đối số: năm, tháng và ngày.

Biến a là một đối tượng date .

Chúng tôi chỉ có thể nhập lớp date từ mô-đun datetime . Đây là cách thực hiện:


kể từ ngày nhập datetime

a = ngày (2019, 4, 13)
print (a)  

Ví dụ 4: Lấy ngày hiện tại

Bạn có thể tạo đối tượng date có chứa ngày hiện tại bằng cách sử dụng phương pháp phân lớp có tên today () . Đây là cách thực hiện:


kể từ ngày nhập datetime

hôm nay = date.today ()

print ("Ngày hiện tại =", hôm nay)
 

Ví dụ 5: Lấy ngày từ dấu thời gian

Chúng tôi cũng có thể tạo các đối tượng date từ dấu thời gian. Dấu thời gian Unix là số giây từ một ngày cụ thể đến ngày 1 tháng 1 năm 1970 theo giờ UTC. Bạn có thể chuyển đổi dấu thời gian thành ngày tháng bằng phương thức fromtimestamp () .


kể từ ngày nhập datetime

timestamp = date.fromtimestamp (1326244364)
print ("Ngày =", dấu thời gian)
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:

Ngày = 2012-01-11 

Ví dụ 6: In năm, tháng và ngày hôm nay

Chúng tôi có thể lấy năm, tháng, ngày, ngày trong tuần, v.v. từ đối tượng date một cách dễ dàng. Đây là cách thực hiện:


kể từ ngày nhập datetime

# đối tượng ngày của ngày hôm nay
hôm nay = date.today ()

print ("Năm hiện tại:", hôm nay. năm)
print ("Tháng hiện tại:", hôm nay. tháng)
print ("Ngày hiện tại:", hôm nay. ngày)
 

Một đối tượng thời gian được khởi tạo từ lớp time đại diện cho giờ địa phương.

Ví dụ 7: Đối tượng thời gian để biểu thị thời gian


từ thời gian nhập datetime

# giờ (giờ = 0, phút = 0, giây = 0)
a = time ()
print ("a =", a)

# thời gian (giờ, phút và giây)
b = thời gian (11, 34, 56)
print ("b =", b)

# thời gian (giờ, phút và giây)
c = thời gian (giờ = 11, phút = 34, giây = 56)
print ("c =", c)

# thời gian (giờ, phút, giây, micro giây)
d = thời gian (11, 34, 56, 234566)
print ("d =", d)
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:


a = 00:00:00
b = 11:34:56
c = 11:34:56
d = 11: 34: 56,234566

Ví dụ 8: In giờ, phút, giây và micro giây

Sau khi tạo đối tượng time , bạn có thể dễ dàng in các thuộc tính của nó như giờ, phút, v.v.


từ thời gian nhập datetime

a = thời gian (11, 34, 56)

print ("giờ =", a.giờ)
print ("phút =", a. phút)
print ("giây =", a. giây)
print ("microsecond =", a.microsecond)
 

Khi bạn chạy ví dụ, kết quả đầu ra sẽ là:


giờ = 11
phút = 34
giây = 56
micro giây = 0

Lưu ý rằng chúng tôi chưa vượt qua đối số micro giây. Do đó, giá trị mặc định của nó là 0 được in.

datetime.datetime

Mô-đun datetime có một lớp có tên là dateclass có thể chứa thông tin từ cả hai đối tượng date time .

Ví dụ 9: Đối tượng datetime trong Python


từ datetime nhập datetime

#datetime (năm, tháng, ngày)
a = datetime (2018, 11, 28)
in (a)

# datetime (năm, tháng, ngày, giờ, phút, giây, micro giây)
b = datetime (2017, 11, 28, 23, 55, 59, 342380)
in (b)
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:


2018-11-28 00:00:00
2017-11-28 23: 55: 59.342380

Ba đối số đầu tiên năm, tháng và ngày trong hàm tạo datetime () là bắt buộc.

Ví dụ 10: In năm, tháng, giờ, phút và dấu thời gian


từ datetime nhập datetime

a = datetime (2017, 11, 28, 23, 55, 59, 342380)
print ("year =", a.year)
print ("month =", a.month)
print ("giờ =", a.giờ)
print ("phút =", a. phút)
print ("timestamp =", a.timestamp ())
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:


năm = 2017
tháng = 11
ngày = 28
giờ = 23
phút = 55
dấu thời gian = 1511913359.34238

Đối tượng timedelta biểu thị sự khác biệt giữa hai ngày hoặc giờ.

Ví dụ 11: Sự khác biệt giữa hai ngày và giờ


từ datetime nhập datetime, ngày

t1 = ngày (năm = 2018, tháng = 7, ngày = 12)
t2 = ngày (năm = 2017, tháng = 12, ngày = 23)
t3 = t1 - t2
print ("t3 =", t3)

t4 = datetime (năm = 2018, tháng = 7, ngày = 12, giờ = 7, phút = 9, giây = 33)
t5 = datetime (năm = 2019, tháng = 6, ngày = 10, giờ = 5, phút = 55, giây = 13)
t6 = t4 - t5
print ("t6 =", t6)

print ("kiểu t3 =", kiểu (t3))
print ("kiểu t6 =", kiểu (t6))
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:


t3 = 201 ngày, 0:00:00
t6 = -333 ngày, 1:14:20
loại t3 = & lt; class 'datetime.timedelta' & gt;
loại t6 = & lt; class 'datetime.timedelta' & gt;

Lưu ý, cả t3 và t6 đều thuộc loại & lt; class 'datetime.timedelta' & gt; .

Ví dụ 12: Sự khác biệt giữa hai đối tượng đồng thời


từ datetime nhập thời gian

t1 = timedelta (tuần = 2, ngày = 5, giờ = 1, giây = 33)
t2 = thời gian (ngày = 4, giờ = 11, phút = 4, giây = 54)
t3 = t1 - t2

print ("t3 =", t3)
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:


t3 = 14 ngày, 13:55:39

Ở đây, chúng tôi đã tạo hai đối tượng timedelta t1 và t2, và sự khác biệt của chúng được in trên màn hình.

Ví dụ 13: In đối tượng hẹn giờ âm


từ datetime nhập thời gian

t1 = thời gian đồng hồ (giây = 33)
t2 = thời gian đồng hành (giây = 54)
t3 = t1 - t2

print ("t3 =", t3)
print ("t3 =", abs (t3))
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:


t3 = -1 ngày, 23:59:39
t3 = 0:00:21

Ví dụ 14: Khoảng thời gian tính bằng giây

Bạn có thể nhận tổng số giây trong một đối tượng đồng thời bằng cách sử dụng phương thức total_seconds () .


từ datetime nhập thời gian

t = timedelta (ngày = 5, giờ = 1, giây = 33, micro giây = 233423)
print ("tổng số giây =", t.total_seconds ())
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:


tổng số giây = 435633.233423

Bạn cũng có thể tìm tổng của hai ngày và giờ bằng toán tử + . Ngoài ra, bạn có thể nhân và chia đối tượng timedelta cho các số nguyên và float.

Ngày giờ định dạng Python

Cách hiển thị ngày và giờ có thể khác nhau ở các nơi, tổ chức khác nhau, v.v. Ở Hoa Kỳ, việc sử dụng mm / dd / yyyy phổ biến hơn, trong khi dd / mm / yyyy phổ biến hơn ở Vương quốc Anh.

Python có các phương thức strftime () strptime () để xử lý điều này.

Python strftime () – đối tượng datetime thành chuỗi

Phương thức strftime () được xác định trong các lớp date , datetime time . Phương thức tạo một chuỗi được định dạng từ một đối tượng date , datetime hoặc time đã cho.

Ví dụ 15: Định dạng ngày bằng strftime ()


từ datetime nhập datetime

# ngày và giờ hiện tại
now = datetime.now ()

t = now.strftime ("% H:% M:% S")
print ("time:", t)

s1 = now.strftime ("% m /% d /% Y,% H:% M:% S")
# mm / dd / YY Định dạng H: M: S
print ("s1:", s1)

s2 = now.strftime ("% d /% m /% Y,% H:% M:% S")
# dd / mm / YY Định dạng H: M: S
print ("s2:", s2)
 

Khi bạn chạy chương trình, đầu ra sẽ giống như sau:


thời gian: 04:34:52
s1: 26/12/2018, 04:34:52
s2: 26/12/2018, 04:34:52

Ở đây, % Y , % m , % d , % H , v.v. là các mã định dạng. Phương thức strftime () nhận một hoặc nhiều mã định dạng và trả về một chuỗi được định dạng dựa trên nó.

Trong chương trình trên, t, s1 và s2 là các chuỗi.

  • % Y – year [0001, …, 2018, 2019, …, 9999]
  • % m – tháng [01, 02, …, 11, 12]
  • % d – day [01, 02, …, 30, 31]
  • % H – giờ [00, 01, …, 22, 23
  • % M – phút [00, 01, …, 58, 59]
  • % S – giây [00, 01, …, 58, 59]

Để tìm hiểu thêm về strftime () và các mã định dạng, hãy truy cập: Python strftime () .

Python strptime () – chuỗi thành datetime

Phương thức strptime () tạo đối tượng datetime từ một chuỗi nhất định (đại diện cho ngày và giờ).

Ví dụ 16: strptime ()


từ datetime nhập datetime

date_string = "21 tháng 6, 2018"
print ("date_string =", date_string)

date_object = datetime.strptime (date_string, "% d% B,% Y")
print ("date_object =", date_object)
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:


date_string = 21 tháng 6, 2018
date_object = 2018-06-21 00:00:00

Phương thức strptime () nhận hai đối số:

  1. một chuỗi đại diện cho ngày và giờ
  2. mã định dạng tương đương với đối số đầu tiên

Nhân tiện, các mã định dạng % d , % B % Y được sử dụng cho ngày, tháng (đầy đủ tên) và năm tương ứng.

Hãy truy cập Python strptime () để tìm hiểu thêm.

Xử lý múi giờ bằng Python

Giả sử, bạn đang thực hiện một dự án và cần hiển thị ngày và giờ dựa trên múi giờ của chúng. Thay vì cố gắng tự xử lý múi giờ, chúng tôi khuyên bạn nên sử dụng mô-đun pytZ của bên thứ ba.


từ datetime nhập datetime
nhập pytz

local = datetime.now ()
print ("Local:", local.strftime ("% m /% d /% Y,% H:% M:% S"))


tz_NY = pytz.timezone ('Châu Mỹ / New_York')
datetime_NY = datetime.now (tz_NY)
print ("NY:", datetime_NY.strftime ("% m /% d /% Y,% H:% M:% S"))

tz_London = pytz.timezone ('Châu Âu / Luân Đôn')
datetime_London = datetime.now (tz_London)
print ("Luân Đôn:", datetime_London.strftime ("% m /% d /% Y,% H:% M:% S"))
 

Khi bạn chạy chương trình, đầu ra sẽ giống như sau:


Giờ địa phương: 2018-12-20 13: 10: 44.260462
Châu Mỹ / New_York time: 2018-12-20 13: 10: 44.260462
Giờ Châu Âu / Luân Đôn: 2018-12-20 13: 10: 44.260462

Ở đây, datetime_NY và datetime_London là các đối tượng datetime chứa ngày và giờ hiện tại trong múi giờ tương ứng của chúng.


Xem thêm những thông tin liên quan đến chủ đề datetime datetime trong python

Python Tutorial: Datetime Module – How to work with Dates, Times, Timedeltas, and Timezones

  • Tác giả: Corey Schafer
  • Ngày đăng: 2016-08-02
  • Đánh giá: 4 ⭐ ( 8281 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: In this Python Tutorial, we will be learning how to use the datetime module. The datetime module is important to understand, because you will be working with dates and times in just about every application you write. We will look at how to work with dates, times, datetimes, timedeltas, and timezones. Let’s get started.

    The code from this video can be found at:
    https://github.com/CoreyMSchafer/code_snippets/tree/master/Datetime

    ✅ Support My Channel Through Patreon:
    https://www.patreon.com/coreyms

    ✅ Become a Channel Member:
    https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g/join

    ✅ One-Time Contribution Through PayPal:
    https://goo.gl/649HFY

    ✅ Cryptocurrency Donations:
    Bitcoin Wallet – 3MPH8oY2EAgbLVy7RBMinwcBntggi7qeG3
    Ethereum Wallet – 0x151649418616068fB46C3598083817101d3bCD33
    Litecoin Wallet – MPvEBY5fxGkmPQgocfJbxP6EmTo5UUXMot

    ✅ Corey’s Public Amazon Wishlist
    http://a.co/inIyro1

    ✅ Equipment I Use and Books I Recommend:
    https://www.amazon.com/shop/coreyschafer

    ▶️ You Can Find Me On:
    My Website – http://coreyms.com/
    My Second Channel – https://www.youtube.com/c/coreymschafer
    Facebook – https://www.facebook.com/CoreyMSchafer
    Twitter – https://twitter.com/CoreyMSchafer
    Instagram – https://www.instagram.com/coreymschafer/

    Python

Datetime trong Python

  • Tác giả: laptrinhtudau.com
  • Đánh giá: 4 ⭐ ( 4407 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Datetime trong Python – Lập Trình Từ Đầu 9 Python nâng cao

13 cách sử dụng đối tượng Datetime trong python

  • Tác giả: viblo.asia
  • Đánh giá: 3 ⭐ ( 1363 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hiện nay datetime có mặt trong mọi website. Việc sử dụng đúng định dạng mong muốn trong ngôn ngữ python hoàn toàn hướng đối tượng có nhiều cách chuyển đổi.Chúng ta cùng tìm hiểu 13 sử dụng đối tượng…

Using Python datetime to Work With Dates and Times – Real Python

  • Tác giả: realpython.com
  • Đánh giá: 5 ⭐ ( 5221 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Have you ever wondered about working with dates and times in Python? In this tutorial, you’ll learn all about the built-in Python datetime library. You’ll also learn about how to manage time zones and daylight saving time, and how to do accurate arithmetic on dates and times.

Date & Time trong Python

  • Tác giả: topdev.vn
  • Đánh giá: 4 ⭐ ( 9455 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 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.

Datetime Trong Python

  • Tác giả: www.codehub.com.vn
  • Đánh giá: 5 ⭐ ( 8617 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Date không phải là kiểu dữ liệu nguyên thủy trong Python, nhưng ta có thể import một module tên là datetime để làm việc với dates như một đối tượng date

Sơ lược Date/Time trong Python

  • Tác giả: freetuts.net
  • Đánh giá: 5 ⭐ ( 6413 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài này chúng ta sẽ tìm hiểu cách xử lý thời gian (date – time) trong Python như: Cách import object date, lấy thời gian hiện tai, định dạng thời gian

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  100% Biểu đồ đường xếp chồng trong Excel - Chèn, Phân tích - 100 đồ thị đường xếp chồng

By ads_php