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

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 datetime từ thư viện.

  1. Import thư viện datetime và tạo ra 3 loại đối tượng khác nhau
  • date object: chứa ngày
  • time object: chứa thời gian
  • datetime object: chưa cả ngày và thời gian
>import datetime
>now = datetime.datetime.now()
>today = now.date()
>moment = now.time()

Nếu bạn in ra các giá trị đó chúng sẽ lấy:

>now
datetime.datetime(2015, 10, 23, 16, 38, 46, 271475)
>today
datetime.date(2015, 10, 23)
>moment
datetime.time(16, 38, 46, 271475)
  1. Bạn có thể tạo một đối tượng date phối hợp và time
>today = datetime.date.today()
>moment = datetime.datetime.now().time()
>now = datetime.datetime.combine(today, moment)
  1. Tạo đối tượng date sử dụng tổng hiệu
>yesterday = today - datetime.timedelta(1)

hoặc chứa điểm khác nhau giữa 2 đối tượng:

> delta = yesterday - today
  1. Khởi tạo đối tượng date chứa các đối số
> my_date = datetime.date(1984, 6, 24)
> my_date = datetime.date(day=24, year=1984, month=6)
  1. Đối tượng Time không có đối số hoặc có đối số
>my_time = datetime.time()
>my_time = datetime.time(0,0)  # first argument hour, second minute
>my_time = datetime.time(hour=0, minute=0)
  1. Đối tượng Datetime có đối số giống đối tượng Date
>my_datetime = datetime.datetime(year=1984, month=6, day=24)  # Time is set to 0:00
>my_other_datetime = datetime.datetime(1984, 6, 24, 18, 30)
>my_other_datetime = datetime.datetime(year=1984, month=6, day=24, hour=18, minute=30)
  1. Thay đổi đối tượng datetime tới thời điểm khác
>another_datetime = my_datetime.replace(year=2015, month=1)
  1. Thay đổi thứ tự hiện thị date và time
>epoch = datetime.datetime.utcfromtimestamp(0)
  1. Tính số ngày và giây giữa 2 thời điểm:
>delta = now - epoch
>days = delta.days
>seconds = delta.seconds
>total_seconds = delta.total_seconds()
  1. Gọi lại now từ số giây tại 1 thời điểm:
>now = datetime.datetime.utcfromtimestamp(seconds)
  1. Viết đối tượng date dạng xâu "2015-10-23"
>string_date = str(my_date)
  1. Gọi lại đối tượng date từ 1 xâu dạng "2015-10-23"
>my_date = datetime.date(*[int(i) for i in string_date.split("-")])
  1. định dạng lại date theo mong muốn
>string_date =  my_date.strftime('%m/%d/%Y')  # 23/10/2015