Python - Ngày và giờ

Thông thường trong khoa học dữ liệu, chúng ta cần phân tích dựa trên các giá trị thời gian. Python có thể xử lý các định dạng ngày và giờ khác nhau một cách duyên dáng. Cácdatetime thư viện cung cấp các phương pháp và chức năng cần thiết để xử lý các tình huống sau.

  • Ngày giờ biểu diễn
  • Ngày giờ số học
  • So sánh ngày giờ

Chúng ta sẽ nghiên cứu từng cái một.

Ngày giờ biểu diễn

Ngày và các phần khác nhau của nó được thể hiện bằng cách sử dụng các hàm ngày giờ khác nhau. Ngoài ra, có các mã định dạng đóng vai trò hiển thị các phần theo thứ tự bảng chữ cái của ngày như tên của tháng hoặc ngày trong tuần. Đoạn mã sau đây hiển thị ngày hôm nay và các phần khác nhau của ngày.

import datetime

print 'The Date Today is  :', datetime.datetime.today()

date_today = datetime.date.today()
print date_today
print 'This Year   :', date_today.year
print 'This Month    :', date_today.month
print 'Month Name:',date_today.strftime('%B')
print 'This Week Day    :', date_today.day
print 'Week Day Name:',date_today.strftime('%A')

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.

The Date Today is  : 2018-04-22 15:38:35.835000
2018-04-22
This Year   : 2018
This Month    : 4
Month Name: April
This Week Day    : 22
Week Day Name: Sunday

Ngày giờ số học

Đối với các phép tính liên quan đến ngày tháng, chúng tôi lưu trữ các ngày khác nhau thành các biến và áp dụng toán tử toán học có liên quan cho các biến này.

import datetime 
 
#Capture the First Date
day1 = datetime.date(2018, 2, 12)
print 'day1:', day1.ctime()

# Capture the Second Date
day2 = datetime.date(2017, 8, 18)
print 'day2:', day2.ctime()

# Find the difference between the dates
print 'Number of Days:', day1-day2


date_today  = datetime.date.today() 

# Create a delta of Four Days 
no_of_days = datetime.timedelta(days=4) 

# Use Delta for Past Date
before_four_days = date_today - no_of_days 
print 'Before Four Days:', before_four_days 
 
# Use Delta for future Date
after_four_days = date_today + no_of_days 
print 'After Four Days:', after_four_days

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.

day1: Mon Feb 12 00:00:00 2018
day2: Fri Aug 18 00:00:00 2017
Number of Days: 178 days, 0:00:00
Before Four Days: 2018-04-18
After Four Days: 2018-04-26

So sánh ngày giờ

Ngày và giờ được so sánh bằng cách sử dụng các toán tử logic. Nhưng chúng ta phải cẩn thận trong việc so sánh các phần đúng của ngày tháng với nhau. Trong các ví dụ dưới đây, chúng tôi lấy ngày trong tương lai và quá khứ và so sánh chúng bằng cách sử dụng mệnh đề python if cùng với các toán tử logic.

import datetime

date_today  = datetime.date.today() 

print 'Today is: ', date_today
# Create a delta of Four Days 
no_of_days = datetime.timedelta(days=4) 

# Use Delta for Past Date
before_four_days = date_today - no_of_days 
print 'Before Four Days:', before_four_days 

after_four_days =  date_today + no_of_days

date1 = datetime.date(2018,4,4)

print 'date1:',date1

if date1 == before_four_days :
    print 'Same Dates'
if date_today > date1:
    print 'Past Date'
if date1 < after_four_days:
    print 'Future Date'

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.

Today is:  2018-04-22
Before Four Days: 2018-04-18
date1: 2018-04-04
Past Date
Future Date