Lấy ngày giờ hiện tại trong python bằng now(), time() và timetz() | Laptrinhcanban.com

Lấy ngày giờ hiện tại trong python bằng now(), time() và timetz()

Hướng dẫn cách lấy ngày giờ hiện tại trong python. Bạn sẽ biết cách lấy ngày giờ hiện tại bằng phương thức now() hoặc phương thức today() trong python sau bài học này.

Lấy ngày giờ hiện tại trong python

Lấy ngày giờ hiện tại trong python bằng phương thức now()

Để lấy ngày hiện tại trong python, chúng ta sử dụng phương thức now() có trong class datetime với cú pháp sau đây:

datetime.now(timezone)

Trong đó đối số timezone được chỉ định bởi class timezone mà bạn đã học tại bài Timezone trong python.

Thông thường chúng ta lược bỏ đối số timezone và sử dụng cú pháp rút gọn sau đây để lấy ngày giờ hiện tại trong python:

datetime.now()

Khi lược bỏ timezone, kết quả trả về sẽ là ngày giờ hiện tại trong đồng hồ tại máy tính của bạn.

Chúng ta sẽ lấy ngày giờ hiện tại trong python như ví dụ sau đây:

import datetime

#lấy ngày giờ hiện tại trong máy tính
dt1 = datetime.datetime.now()
print(dt1)
#>> 2021-05-06 05:34:09.960169

#lấy ngày giờ hiện tại ở múi giờ thứ 7 (Hà nội)
tz_hanoi = datetime.timezone(datetime.timedelta(hours=7))
dt2 = datetime.datetime.now(tz_hanoi)
print(dt2)
#>> 2021-05-06 03:34:09.977525+07:00

Sau khi lấy ngày giờ hiện tại bằng phương thức now(), kết quả trả về là một instance thuộc kiểu datetime. Để có thể xử lý instance này, bạn có thể chuyển datime này thành kiểu string như ở bài Chuyển datetime sang string trong python, giống như ví dụ sau:

import datetime

dt_now = datetime.datetime.now()

print(dt_now.strftime('%YYear%MMonth%dday %H:%M:%S'))
# 2021Year25Month06day 03:25:31

print(type(dt_now.strftime('%Y年Year%MMonth%dDay %H:%M:%S')))
# <class 'str'>

print(dt_now.isoformat())
# 2021-05-06T03:25:31.052855

print(type(dt_now.isoformat()))
# <class 'str'>

Ngoài ra, bạn cũng có thể sử dụng các thuộc tính của class datetime để lấy ra thông tin ngày, giờ, giây, phút hiện tại từ intance trên, như ví dụ sau:

import datetime

dt_now = datetime.datetime.now()

print(dt_now.year)
# 2021

print(dt_now.month)
# 5

print(dt_now.day)
# 6

print(dt_now.hour)
# 3

print(dt_now.minute)
# 29

print(dt_now.second)
# 51

print(dt_now.microsecond)
# 866748

Lưu ý là riêng đối với với thuộc tính tzinfo chứa thông tin về múi giờ, kết quả sẽ khác nhau tùy thuộc vào việc bạn có chỉ định đối số timezone hay không, như ví dụ sau đây:

import datetime

dt1 = datetime.datetime.now()
print(dt1.tzinfo)
#>> None

tz_hanoi = datetime.timezone(datetime.timedelta(hours=7))
dt2 = datetime.datetime.now(tz_hanoi)

print(dt2.tzinfo)
#>> UTC+07:00

Lấy ngày giờ hiện tại trong python bằng phương thức today()

Chúng ta cũng có thể lấy ngày giờ hiện tại trong python bằng phương thức today() với cú pháp sau đây:

datetime.today()

Lưu ý là khác với phương thức now(), chúng ta không thể chỉ định đối số timezone trong phương thức today().

Cách lấy ngày giờ hiện tại trong python bằng phương thức today() như ví dụ sau đây:

import datetime

dt = datetime.datetime.today()
print(dt)
#>> 2021-05-06 05:35:17.438046

Lấy ngày hiện tại trong Python

Lấy ngày hiện tại trong Python bằng phương thức today()

Trong trường hợp chỉ lấy ngày hiện tại trong python, chúng ta có thể sử dụng tới phương thức today() trong class date, với cú pháp sau đây:

date.today()

Kết quả trả về sẽ là ngày hiện tại, giống như ví dụ sau:

import datetime

dt = datetime.date.today()
print(dt)
##> 2021-05-06

Lấy ngày hiện tại trong Python bằng phương thức utcnow()

Ngoài cách dùng phương thức today, bạn cũng có thể sử dụng tới phương thức utcnow() như ví dụ sau:

import datetime
d_today_utc = datetime.datetime.utcnow().date()

print(d_today_utc)
# 2021-05-06

print(type(d_today_utc))
# <class 'datetime.date'>

Ở ví dụ trên thì kết quả cũng không khác so với phương thức today(), tuy nhiên do với phương thức utcnow() chúng ta lấy ngày hiện tại so với UTC múi giờ bằng 0, do đó kết quả có thể khác đi do sự chênh lệch múi giờ.

Lấy giờ hiện tại trong Python

Lấy giờ hiện tại trong Python bằng phương thức time()

Để lấy giờ hiện tại trong python, chúng ta sử dụng phương thức now() mà bạn đã học ở phần trên, kèm với phương thức time() trong python, với cú pháp sau đây:

datetime.now(timezone).time()

Giống như ở phần trên, chúng ta có thể chỉ định hoặc lược bỏ đi đối số timezone.

import datetime

# lược bỏ timezone
t_now = datetime.datetime.now().time()

print(t_now)
#>> 13:04:01.922740

#chỉ định timezone
tz_hanoi = datetime.timezone(datetime.timedelta(hours=7))
t2_now = datetime.datetime.now(tz_hanoi).time()
print(t2_now)
#>> 11:04:55.803209

#chỉ định timezone với giá trị default = 0
t_now_utc = datetime.datetime.now(datetime.timezone.utc).time()

print(t_now_utc)
#>> 04:04:37.653467

Lấy giờ hiện tại trong Python bằng phương thức timetz()

Lại nữa, trong trường hợp chỉ định đối số timezone, chúng ta có thể lấy kèm thông tin về timezone với giờ hiện tại bằng phương thức timetz() trong python như sau:

import datetime

tz_hanoi = datetime.timezone(datetime.timedelta(hours=7))
t2_now = datetime.datetime.now(tz_hanoi).timetz()
print(t2_now)
#>> 11:11:48.477226+07:00

t_now_utc = datetime.datetime.now(datetime.timezone.utc).timetz()

print(t_now_utc)
#>> 04:11:48.477255+00:00

Tổng kết và thực hành

Trên đây Kiyoshi đã hướng dẫn bạn về cách lấy ngày giờ hiện tại trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.