Làm cách nào để sử dụng mô-đun ngày giờ trong python?

Trong bài đăng này, chúng ta sẽ đi sâu vào mô-đun ngày giờ của Python và khám phá cách chúng ta có thể triển khai hiệu quả dữ liệu ngày và giờ vào mã Python của mình

Bất kể bạn đang theo đuổi lĩnh vực lập trình Python nào, đây là mô-đun cần phải biết với vô số ứng dụng và rất nhiều ứng dụng nghề nghiệp chuyên nghiệp

Bắt đầu nào

điều kiện tiên quyết. Người đọc dự kiến ​​​​sẽ có kiến ​​​​thức làm việc về ngôn ngữ lập trình Python

Mục lục

  • Giới thiệu về Python Ngày giờ
  • Đối tượng nhận thức Vs Naive
  • Các lớp học
  • ngày giờ. ngày tháng
    • Tạo đối tượng ngày tháng
    • Các phương thức lớp ngày quan trọng
    • ngày định dạng
    • strftime cho đối tượng ngày
  • ngày giờ. thời gian
    • Tạo đối tượng thời gian
    • strftime cho đối tượng thời gian
    • Các phương thức lớp thời gian quan trọng
  • ngày giờ. múi giờ
  • ngày giờ. ngày giờ
    • Tạo đối tượng ngày giờ
    • datetime từ định dạng ISO
    • Kết hợp các đối tượng ngày và giờ thành datetime
    • Số học với các đối tượng datetime
    • strftime và strptime cho datetime
    • dấu thời gian
  • Đọc thêm/Tham khảo
  • Phần kết luận

Giới thiệu về Python Ngày giờ

Mô-đun datetime của Python chứa nhiều lớp khác nhau để biểu diễn và thao tác ngày và giờ. Các lớp quan trọng trong datetime là date, time, datetime, timedelta, tzinfo, timezone. Chúng ta sẽ xem xét ngắn gọn về các đối tượng ngày, giờ và timedelta và chi tiết hơn về các đối tượng datetime. Múi giờ không được đề cập trong bài viết này

Đối tượng nhận thức Vs Naive

Các đối tượng Ngày và Giờ chứa thông tin múi giờ và giờ tiết kiệm ánh sáng ban ngày [DST] được gọi là các đối tượng nhận biết. Một đối tượng nhận thức đại diện cho một thời điểm không thể diễn giải và có thể định vị chính nó so với các đối tượng nhận thức khác. Các đối tượng ngây thơ đơn giản hơn và đại diện cho UTC hoặc giờ địa phương, v.v. và không thể xác định vị trí của chúng so với các đối tượng nhận thức khác

đối tượng ngày là ngây thơ. đối tượng ngày giờ và thời gian có thể ngây thơ hoặc nhận thức

Các lớp học

ngày giờ. ngày tháng

Tạo đối tượng ngày tháng

Một đối tượng ngày đại diện cho một ngày. Hàm tạo cho các đối tượng ngày là ngày [năm, tháng, ngày]. Một ngày cũng có thể được tạo từ một ngày hiện có bằng cách sử dụng phương thức thay thế để thay thế năm/tháng/ngày. Chúng ta cũng có thể thiết lập ngày trong tuần

# date constructor
>>> d = date [1999, 5, 26]

# methods to get data
>>> d.day
26

>>> d.month
5

>>> d.year
1999

# Monday = 0, Sunday = 6
>>> d.weekday[]
2

# Monday = 1, Sunday = 7
>>>> d.isoweekday[]
3

>>> d.replace [month=11]
datetime.date[1999, 11, 26]

Các phương thức lớp ngày quan trọng

Các phương thức sau đây được định nghĩa trên lớp ngày và cung cấp thông tin về phạm vi ngày được hỗ trợ bởi lớp ngày

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00

ngày định dạng

Đối tượng ngày tháng có thể được định dạng theo nhiều cách khác nhau bằng cách sử dụng các phương thức khác nhau của lớp ngày tháng. strftime là một phương pháp định dạng mạnh mẽ hỗ trợ một số định dạng. Chúng ta sẽ xem xét nó một cách chi tiết trong phần tiếp theo

>>> d = date [1999, 5, 26]

>>> d.isoformat[]
'1999-05-26'

>>> d.ctime[]
'Wed May 26 00:00:00 1999'

>>> d.strftime['%d%m%y']
'260599'

strftime cho đối tượng ngày

Cú pháp chung của strftime như sau

datetime.date.strftime[format_string]

strftime là một phương thức thể hiện trên các đối tượng datetime, date, time. Nó chuyển đổi một đối tượng ngày thành một chuỗi được định dạng. Nó hỗ trợ nhiều chuỗi định dạng được mô tả chi tiết trong Tài liệu Python. Trong phần này, chúng ta xem xét một số ví dụ về định dạng strftime trong ngữ cảnh của đối tượng ngày tháng

Các mã định dạng cho giờ, phút, giây, micro giây không được sử dụng ở đây vì chúng không áp dụng cho các đối tượng ngày tháng. Nếu được sử dụng, chúng được thay thế bằng 0

>>> d.strftime['%A %B %Y']
'Wednesday May 1999'

>>> d.strftime['%a %b %y']
'Wed May 99'

# %j = day of the year
>>> d.strftime['%a %b %y %j']
'Wed May 99 146'

# %U = week of the year [Sunday = 1]
>>> d.strftime['%j %U']
'146 21'

ngày giờ. thời gian

Một đối tượng thời gian đại diện cho một thời gian trong ngày, không phụ thuộc vào ngày. Nó có thể được điều chỉnh bằng đối tượng múi giờ [tzinfo]. Số học không được hỗ trợ trên các đối tượng thời gian

Tạo đối tượng thời gian

Có thể tạo một đối tượng thời gian bằng cách sử dụng hàm tạo thời gian, từ một đối tượng thời gian hiện có bằng cách sử dụng phương thức thay thế [để thay thế giờ/phút/giây/micro giây] hoặc từ một chuỗi có định dạng iso

Hàm tạo cho đối tượng thời gian như sau

datetime.time[hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0
from datetime import time

>>> t = time[12, 25, 9]

>>> t.hour
12
>>> t.second
9

>>> t.minute
25

>>> t.microsecond
0

>>> t.isoformat[] 
'12:25:09' 

>>> t.strftime['%H:%M:%S'] 
'12:25:09'

# New date from existing date by replacing minute
>>> t2 = t.replace[minute=44] 

>>> t2.isoformat[]
'12:44:09'

# new time from isoformatted string
>>> t3 = time.fromisoformat['14:45:59']

>>> t3
datetime.time[14, 45, 59]

>>> t3.isoformat[]
'14:45:59'

strftime cho đối tượng thời gian

strftime là một phương thức thể hiện trên các đối tượng datetime, date, time. Nó chuyển đổi một đối tượng thời gian thành một chuỗi được định dạng. Nó hỗ trợ nhiều chuỗi định dạng được mô tả chi tiết trong Tài liệu Python. Trong phần này, chúng ta xem xét một số ví dụ về định dạng strftime trong ngữ cảnh của đối tượng time

Các chuỗi định dạng cho năm, tháng và ngày không được sử dụng ở đây vì chúng không áp dụng cho các đối tượng thời gian. Nếu được sử dụng,

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
8 được thay thế cho năm và
# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
9 cho tháng và ngày

>>> t = time[12, 25, 9]

# 24-hour clock
>>> t.strftime['%H:%M:%S']
'14:45:59'

# 12-hour clock
>>> t.strftime['%I:%M:%S %p']
'02:45:59 PM'

# 1 substituted for month, day, 1900 for year
>>> t.strftime['%c']
'Mon Jan 1 14:45:59 1900'

Các phương thức lớp thời gian quan trọng

Các phương thức sau được định nghĩa trên lớp thời gian và cung cấp thông tin về phạm vi thời gian được hỗ trợ bởi lớp thời gian

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
0

ngày giờ. múi giờ

timedelta là khoảng thời gian thể hiện sự khác biệt giữa 2 đối tượng date/time/datetime với độ chính xác micro giây. Điều quan trọng cần nhớ là số học không được hỗ trợ trên các đối tượng thời gian. Do đó, chúng ta phải chuyển đổi các đối tượng thời gian thành các đối tượng ngày giờ với bất kỳ ngày hợp lệ nào và sau đó tính toán sự khác biệt. Ngoài ra, một đối tượng ngày giả có thể được kết hợp với từng đối tượng thời gian và các đối tượng ngày giờ kết quả có thể được sử dụng để tính toán sự khác biệt

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
1

ngày giờ. ngày giờ

datetime là một đối tượng quan trọng của mô-đun datetime, chứa thông tin từ một đối tượng ngày và giờ

Tạo đối tượng ngày giờ

các đối tượng ngày giờ có thể được tạo bằng hàm tạo, từ chuỗi iso, dấu thời gian POSIX, dấu thời gian UTC, kết hợp các đối tượng ngày và giờ. Ngày và giờ hiện tại cũng có thể được trả về bằng các phương thức như now[] và today[]. Chúng tôi xem xét một số phương pháp dưới đây. Để biết chuyên luận toàn diện về cách tạo đối tượng ngày giờ, hãy xem tài liệu Python

Định dạng hàm tạo như sau

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
0

ngày giờ. now[] có thể được sử dụng để lấy ngày, giờ địa phương hiện tại dưới dạng đối tượng datetime

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
1

datetime từ định dạng ISO

Một đối tượng datetime có thể được tạo từ một chuỗi có định dạng ISO như sau

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
2

Kết hợp các đối tượng ngày và giờ thành datetime

các đối tượng ngày và giờ có thể được kết hợp thành một đối tượng ngày giờ bằng phương thức kết hợp

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
3

Số học với các đối tượng datetime

Có thể thêm hoặc bớt các đối tượng ngày giờ vào/bớt đối tượng timedelta để tạo ra một đối tượng ngày giờ. Ví dụ bên dưới cộng và trừ một múi giờ 30 ngày cho ngày hiện tại để tạo ra các đối tượng ngày giờ, sau 1 tháng và sớm hơn 1 tháng so với ngày hiện tại

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
4

strftime và strptime cho datetime

strftime là một phương thức để chuyển đổi một đối tượng datetime thành một chuỗi được định dạng dưới sự kiểm soát của một chuỗi định dạng. strptime là một phương thức lớp datetime chuyển đổi một chuỗi biểu thị ngày giờ thành một đối tượng ngày giờ bằng cách sử dụng chuỗi định dạng

Các ví dụ của strftime

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
5

Các ví dụ của strptime

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
6

dấu thời gian

Dấu thời gian là một cách thể hiện các đối tượng ngày giờ dưới dạng một kỷ nguyên UNIX i. e. số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 UTC. Rất đơn giản để chuyển đổi giữa đối tượng ngày giờ và dấu thời gian

# the earliest representable date
>>> print [date.min]
0001-01-01

# the latest representable date
>>> print [date.max]
9999-12-31

# the smallest possible difference between 2 non-equal date objects.
>>> print [date.resolution]
1 day, 0:00:00
7

Đọc thêm/Tham khảo

Bạn đã sẵn sàng tìm hiểu thêm về Python datetime hoặc Python nói chung chưa?

  • Tài liệu Python – datetime
  • Pythonic. com – chức năng ngày trong tuần
  • W3Schools – ngày giờ
  • Tài liệu Python – hành vi strftime và strptime
  • Diều. com – Trừ một ngày giờ. time từ một đối tượng khác bằng cách sử dụng datetime. phối hợp
  • Howchoo. com – Làm việc với các đối tượng datetime và timezone trong Python
  • kdnuggets – Cách sử dụng datetime của Python
  • Zenva – Python Mini-Degree

Phần kết luận

Và chúng ta đã có nó – bây giờ bạn đã hiểu rõ hơn về mô-đun ngày giờ trong Python và cách bạn có thể sử dụng nó cho bất cứ điều gì bạn có thể cần trong một chương trình Python. Như chúng ta đã thảo luận, mô-đun ngày giờ trong Python có nhiều lớp khác nhau để xử lý ngày và giờ. Các lớp chính là ngày, giờ, datetime, timedelta, tzinfo và múi giờ. Lớp date chỉ đại diện cho một ngày, đối tượng time đại diện cho thời gian không phụ thuộc vào ngày và datetime đại diện cho cả ngày và giờ

Hơn nữa, chúng tôi cũng chỉ ra cách có thể tạo các đối tượng ngày giờ theo nhiều cách khác nhau – sử dụng hàm tạo, kết hợp các đối tượng ngày và giờ, v.v. Chúng tôi cũng khám phá định dạng. strftime cho phép chúng ta biểu diễn một đối tượng ngày/giờ/ngày giờ dưới dạng chuỗi sử dụng chuỗi định dạng làm hướng dẫn. strptime sử dụng một chuỗi định dạng để chuyển đổi một chuỗi chứa ngày, giờ thành một đối tượng datetime

Tuy nhiên, có nhiều điều để học hỏi từ đây. Mặc dù bài viết này không đề cập đến nó, nhưng mô-đun hỗ trợ tạo và thao tác ngày và giờ ở các múi giờ khác nhau, giúp bạn có nhiều sức mạnh hơn cho nhu cầu lập trình Python của mình. Bạn cũng có thể khám phá các khái niệm khác liên quan đến ngày, chẳng hạn như nhận thông tin Giờ tiết kiệm ánh sáng ban ngày, các kỹ thuật khác để xử lý múi giờ địa phương, v.v.

Bất kể, với những công cụ này, bạn có thể nhanh chóng đạt được thành công và xây dựng các chương trình theo mong muốn của mình. Chúng tôi chúc bạn may mắn với các chương trình Python của mình

Làm cách nào để lấy ngày giờ bằng Python?

Lấy ngày giờ hiện tại bằng Python . Ở đây, chúng tôi đã sử dụng datetime. now[] để lấy ngày giờ hiện tại. Sau đó, chúng tôi đã sử dụng strftime[] để tạo chuỗi biểu thị ngày và giờ ở định dạng khác. use the datetime class of the datetime module. Here, we have used datetime.now[] to get the current date and time. Then, we used strftime[] to create a string representing date and time in another format.

Mô-đun được sử dụng cho các thao tác ngày/giờ trong Python là gì?

Mô-đun datetime cung cấp các lớp để thao tác ngày và giờ. Mặc dù số học ngày và giờ được hỗ trợ, trọng tâm của việc triển khai là trích xuất thuộc tính hiệu quả để định dạng và thao tác đầu ra. Các chức năng liên quan đến lịch chung.

Chủ Đề