Computer >> Máy Tính >  >> Lập trình >> Python

Các kiểu ngày và giờ trong Python cơ bản

Để thao tác ngày và giờ trong python, có một mô-đun được gọi là datetime. Có hai loại đối tượng ngày và giờ. Kiểu ngây thơ và có nhận thức.

Trong đối tượng ngây thơ, không có đủ thông tin để xác định vị trí rõ ràng đối tượng này từ các đối tượng ngày-giờ khác. Trong cách tiếp cận này, nó sử dụng Tọa độ Giờ Toàn cầu (UTC).

Trong các đối tượng loại nhận biết có các thông tin khác nhau liên quan đến các điều chỉnh thời gian chính trị và thuật toán. Loại đối tượng này được sử dụng để biểu thị một số khoảnh khắc thời gian cụ thể.

Để sử dụng mô-đun này, chúng ta nên nhập nó bằng cách sử dụng -

import datetime

Có các lớp, hằng số và phương thức khác nhau trong mô-đun này.

Các hằng số là -

Sr.No. Hằng số &Mô tả
1

datetime.MINYEAR

Đây là số Năm nhỏ nhất, có thể được áp dụng làm đối tượng ngày tháng hoặc ngày giờ. Giá trị là 0

2

datetime.MAXYEAR

Đây là số Năm lớn nhất, có thể được áp dụng làm đối tượng ngày tháng hoặc ngày giờ. Giá trị là 9999

Các kiểu dữ liệu có sẵn là -

Sr.No. Kiểu dữ liệu &Mô tả
1

ngày tháng

Nó là đối tượng kiểu ngày tháng. Nó sử dụng lịch Gregorian. Nó có các thuộc tính năm, tháng, ngày.

2

thời gian

Nó là một lớp đối tượng thời gian. Nó không phụ thuộc vào bất kỳ ngày cụ thể nào. Nó có các thuộc tính giờ, phút, giây, micro giây và tzinfo.

3

ngày giờ

Đây là một tập hợp ngày và giờ được kết hợp.

4

hẹn giờ

Nó được sử dụng để thể hiện sự khác biệt giữa hai giá trị ngày, giờ hoặc thời gian tính bằng mili giây.

5

tzinfo

Nó là một lớp cơ sở trừu tượng. Nó chứa thông tin múi giờ. Nó được sử dụng bởi các lớp ngày giờ và thời gian.

6

múi giờ

Trong lớp này, nó thực hiện tzinfo. Có một khoảng chênh lệch cố định từ UTC

Đối tượng loại ngày

Các đối tượng ngày đại diện cho một ngày. Trong ngày có Ngày, tháng và phần Năm. Nó sử dụng Lịch Gregorian. Theo lịch này, ngày 1 tháng 1 của Năm 1 được gọi là ngày số 1, v.v.

Một số phương pháp liên quan đến ngày tháng là -

Method date.date (năm, tháng, ngày)

Đây là hàm tạo để tạo một đối tượng kiểu ngày tháng. Để tạo ngày, tất cả các đối số được yêu cầu dưới dạng dữ liệu kiểu số nguyên. Năm phải nằm trong phạm vi MINYEAR &MAXYEAR. Nếu ngày đã cho không hợp lệ, ngày đó sẽ làm tăng ValueError.

Method date.today ()

Phương thức này được sử dụng để trả về ngày địa phương hiện tại.

Method date.fromtimestamp (dấu thời gian)

Phương thức này được sử dụng để lấy ngày từ dấu thời gian POSIX. Nếu giá trị dấu thời gian nằm ngoài phạm vi, nó sẽ tăng OverflowError.

Method date.fromordinal (ordinal)

Phương pháp này được sử dụng để lấy ngày từ thứ tự Lịch Gregory sơ khai. Nó được sử dụng để lấy ngày kể từ ngày đếm từ ngày 1 tháng 1 của năm 1.

Method date.toordinal ()

Phương thức này được sử dụng để trả về một ngày về thứ tự Lịch Gregory sơ khai.

Method date.weekday ()

Phương thức này được sử dụng để trả về ngày trong tuần dưới dạng số nguyên kể từ ngày. Thứ Hai là 0, Thứ Ba là 1, v.v.

Method date.isoformat ()

Phương thức này được sử dụng để trả về ngày tháng dưới dạng chuỗi định dạng ISO 8601. Định dạng là YYYY-MM-DD.

Mã mẫu

import datetime as dt
new_date = dt.date(1998, 9, 5) #Store date 5th septemberm, 1998
print("The Date is: " + str(new_date))
print("Ordinal value of given date: " + str(new_date.toordinal()))
print("The weekday of the given date: " + str(new_date.weekday())) #Monday is 0
my_date = dt.date.fromordinal(732698) #Create a date from the Ordinal value.
print("The Date from ordinal is: " + str(my_date))
td = my_date - new_date #Create a timedelta object
print('td Type: ' + str(type(td)) + '\nDifference: ' + str(td))

Đầu ra

The Date is: 1998-09-05
Ordinal value of given date: 729637
The weekday of the given date: 5
The Date from ordinal is: 2007-01-22
td Type: <class 'datetime.timedelta'>
Difference: 3061 days, 0:00:00

Đối tượng thời gian

Đối tượng thời gian đại diện cho giờ địa phương. Trong thời gian có phần giờ, phút giây, micro giây, tzinfo. Giờ sẽ nằm trong phạm vi 0 đến 24 và phút và giây sẽ nằm trong phạm vi 0 đến 60 và micro giây sẽ nằm trong phạm vi 0 đến 1000000.

Một số phương pháp liên quan đến thời gian là

Method time.fromisoformat (time_string)

Phương pháp này được sử dụng để lấy thời gian từ một chuỗi ISO 8601. Nó có thể nhận bất kỳ đầu ra nào của phương thức time.isoformat ().

Method time.replace (giờ =self.hour, phút =self.minute, second =self.second, microsecond =self.microseconds, tzinfo =self.tzinfo, * fold =0)

Phương thức này được sử dụng để trả về thời gian bằng cách lấy các giá trị từ các đối số. Nếu không có đối số nào được chuyển, nó sẽ trả về các giá trị đối tượng cùng thời gian.

Method time.tzname ()

Phương thức này được sử dụng để trả về tên của múi giờ. Nếu tzinfo là Không, nó sẽ trả về Không.

Đối tượng ngày giờ

Đối tượng datetime chứa cả ngày và giờ. Là đối tượng ngày, nó hỗ trợ Lịch Gregorian và là đối tượng Thời gian, nó giữ chính xác 3600 * 24 giây cho mỗi ngày.

Nó hỗ trợ tất cả các phương pháp liên quan đến ngày và giờ, một số phương pháp cũng có sẵn cho datetime. Những thứ này giống như -

Phương thức datetime.now (tz =Không có)

Phương thức này được sử dụng để lấy ngày và giờ hiện tại. Nếu tz không có mặt hoặc Không có thì nó sẽ trả về ngày tháng giống như phương thức today ().

Phương thức datetime.utcnow ()

Phương pháp này được sử dụng để lấy thông tin liên quan đến ngày và giờ UTC hiện tại.

Có hai phương thức khác được gọi là strftime () và strptime (). Các phương pháp này có thể áp dụng cho cả đối tượng ngày tháng và thời gian cũng như đối tượng ngày giờ.

Phương thức datetime.strftime (format [, t])

Phương thức strftime () chuyển đổi một tuple hoặc struct_time đại diện cho một thời gian được trả về bởi gmtime () hoặc localtime () thành một chuỗi như được chỉ định bởi đối số định dạng. Nếu t không được cung cấp, thời gian hiện tại được trả về bởi localtime () sẽ được sử dụng. định dạng phải là một chuỗi. Lỗi ValueError ngoại lệ được đưa ra nếu bất kỳ trường nào trong t nằm ngoài phạm vi cho phép.

Phương thức datetime.strftime (format [, t])

Phương thức strptime () phân tích cú pháp một chuỗi biểu thị thời gian theo một định dạng. Giá trị trả về là struct_time do gmtime () hoặc localtime () trả về. Tham số định dạng sử dụng các chỉ thị giống như các chỉ thị được sử dụng bởi strftime (); nó mặc định là "% a% b% d% H:% M:% S% Y" khớp với định dạng được trả về bởi ctime ().

Hai phương pháp này sử dụng một số chỉ thị. Một số trong số chúng được liệt kê dưới đây -

Sr.No. Chỉ thị &Mô tả
1

% A

Tên đầy đủ các ngày trong tuần

2

% B

Tên tháng đầy đủ

3

% d

Ngày trong tháng (0 đến 31)

4

% S

Thứ hai

5

% G

Năm 4 chữ số, tương ứng với số tuần ISO

6

% m

Tháng (1 đến 12)

7

% M

Phút

8

% T

Thời gian hiện tại, bằng% H:% M:% S

9

% W

Số tuần của năm hiện tại, bắt đầu với thứ Hai đầu tiên là ngày đầu tiên của tuần đầu tiên

10

% w

Ngày trong tuần dưới dạng số thập phân, Chủ nhật =0

11

% Y

Năm bao gồm cả thế kỷ

12

% Z hoặc% z

Múi giờ hoặc tên hoặc chữ viết tắt

Mã mẫu

import datetime as dt
my_date1 = dt.datetime(2015, 1, 4) #Storing the date 4th Jan, 2015
print(my_date1)
print('The Weekday of that day was: ' + my_date1.strftime('%A'))
my_date2 = dt.datetime.strptime('August-15-2017', '%B-%d-%Y') #Storing the date 15th Aug, 2017
print(my_date2)
print('The Weekday of that day was: ' + my_date2.strftime('%A'))
print('The difference between two days: ' + str(abs(my_date1 - my_date2)))

Đầu ra

2015-01-04 00:00:00
The Weekday of that day was: Sunday
2017-08-15 00:00:00
The Weekday of that day was: Tuesday
The difference between two days: 954 days, 0:00:00