Hướng dẫn datetime python now - datetime python ngay bây giờ

Trong bài viết này, bạn sẽ học cách có được ngày và giờ hiện tại ngày hôm nay ở Python. Chúng tôi cũng sẽ định dạng ngày và giờ ở các định dạng khác nhau bằng phương thức strftime [].

Video: Ngày và giờ ở Python

Có một số cách bạn có thể thực hiện để có được ngày hiện tại. Chúng tôi sẽ sử dụng lớp

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
2 của mô -đun DateTime để hoàn thành nhiệm vụ này.

Ví dụ 1: Python Nhận ngày hôm nay

from datetime import date

today = date.today[]
print["Today's date:", today]

Ở đây, chúng tôi đã nhập lớp

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
2 từ mô -đun
from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
4. Sau đó, chúng tôi đã sử dụng phương pháp
from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
5 để có được ngày địa phương hiện tại.

Nhân tiện,

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
5 trả về một đối tượng
from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
2, được gán cho biến ngày nay trong chương trình trên. Bây giờ, bạn có thể sử dụng phương thức strftime [] để tạo một chuỗi đại diện ở các định dạng khác nhau.

Ví dụ 2: Ngày hiện tại ở các định dạng khác nhau

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]

Khi bạn chạy chương trình, đầu ra sẽ giống như:

d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019

Nếu bạn cần có được ngày và giờ hiện tại, bạn có thể sử dụng lớp

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
4 của mô -đun
from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
4.

Ví dụ 3: Nhận ngày và giờ hiện tại

from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	

Bạn sẽ cổng đầu ra như dưới đây.

now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56

Ở đây, chúng tôi đã sử dụng

d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
0 để có được ngày và giờ hiện tại. Sau đó, chúng tôi đã sử dụng
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
1 để tạo một chuỗi biểu diễn ngày và thời gian ở định dạng khác.

Tổng quan

Gần đây mình có làm việc nhiều với kiểu dữ liệu Datetime trong Python. Vấn đề mình gặp phải là xử lý nhiều loại time format khác nhau, chuyển hóa thành dạng Datetime, chuẩn hóa thời gian lưu trữ và lưu vào database. Và sau đây, mình sẽ viết bài chia sẻ về cách mình xử lý kiểu dữ liệu Datetime trong Python. Trong bài mình sẽ sử dụng Python 3 để xử lý kiểu dữ liệu Datetime.

Tips 1: Chuẩn hóa múi giờ sử dụng

Đầu tiên, cũng là quan trọng nhất, chuẩn hóa múi giờ sử dụng để convert các kiểu thời gian. Mình lựa chọn sử dụng chuẩn múi giờ UTC để chuẩn hóa thời gian cho cả hệ thống cũng như làm múi giờ chuẩn để xử lý các loại format thời gian khác nhau.

Tham khảo thêm về thời gian UTC tại

Tips 2: Convert String thành Datetime

Xử lý bằng hàm

d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
2

import datetime
import pytz
from dateutil.parser import parse

# Dạng string time
date_string = '2019-03-20T03:41:16Z'

# Dạng datetime format
date_time_python = parse[date_string]

Xử lý bằng strptime

import datetime
import pytz
from dateutil.parser import parse

# Dạng string time
date_string = '2019-03-21 03:41:16'

# Strptime
format = '%Y-%m-%d %H:%M:%S'
date_time_python = datetime.datetime.strptime[date_string, format]

Lưu ý:

  • Các rất nhiều format time khác nhau nên để có thể chuyển từ string thành Datetime
    d1 = 16/09/2019
    d2 = September 16, 2019
    d3 = 09/16/19
    d4 = Sep-16-2019
    2 chỉ có thể xử lý một số dạng tiêu chuẩn, nếu khác dạng tiêu chuẩn phải hiểu ra cấu trúc time string để sử dụng hàm
    d1 = 16/09/2019
    d2 = September 16, 2019
    d3 = 09/16/19
    d4 = Sep-16-2019
    4 để cắt chuỗi tạo Datetime
  • Nếu kiểu dữ liệu Datetime không rõ múi giờ thì được gọi là
    d1 = 16/09/2019
    d2 = September 16, 2019
    d3 = 09/16/19
    d4 = Sep-16-2019
    5

Tips 3: Chuyển hóa kiểu Datetime sang Timestamp Python

Timestamp là kiểu thời gian thông dụng của hệ thông Unix, tìm hiểu thêm tại

import datetime

# Dạng datetime
date_time_now = datetime.datetime.now[]

# Dạng timestamp
timestamp_now = date_time_now.timestamp[]

Tips 4: Chuyển hóa kiểu native date sang UTC timezone

Kiểm tra kiểu timezone

import datetime
import pytz

# Dạng native date
date_time_now = datetime.datetime.now[]
print[date_time_now.tzname[]]

# Dạng utc
UTC = pytz.utc
date_time_utc_now = UTC.localize[date_time_now]
print[date_time_utc_now.tzname[]]

Lưu ý: không sử dụng hàm replace, hàm replace sẽ chỉ thay đổi tzinfo không qui đổi thời gian từ múi giờ này sang múi giờ khác

Tips 5: Convert UTC sang timezone khác

Nếu bạn ở múi giờ Việt Nam [GMT + 7], tức nếu hiện tại là 8 giờ sáng [giờ Việt Nam] thì quy ra giờ UTC tức 1 giờ sáng [giờ UTC]. Vậy nếu Datetime đang ở múi giờ UTC, ta phải convert nó sáng giờ Việt Nam

import datetime
import pytz

# Dạng native date
date_time_now = datetime.datetime.now[]
print[date_time_now.tzname[]]

# Dạng utc
UTC = pytz.utc
date_time_utc_now = UTC.localize[date_time_now]
print[date_time_utc_now.tzname[]]

# Dạng 'Asia/Ho_Chi_Minh'

VN_TZ = pytz.timezone['Asia/Ho_Chi_Minh']
date_time_vntz_now = date_time_utc_now.astimezone[VN_TZ]
print[date_time_vntz_now.tzname[]]

Tips 6: Chuyên từ Timestamp sang Datetime

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
0

Tips 7: Convert Datetime sang ISO 8601

ISO 8601 là một tiêu chuẩn quốc tế, được đưa ra bởi Tổ chức tiêu chuẩn hóa quốc tế [ISO] lần đầu tiên năm 1988, mô tả quy cách viết ngày tháng và thời gian theo cách đơn giản nhất mà máy tính có thể hiểu được. Còn đối với Python ISO 8601 Datetime là string format time thông dụng.

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
1

Nguồn

//vi.wikipedia.org/wiki/Th%E1%BA%A3o_lu%E1%BA%ADn:M%C3%BAi_gi%E1%BB%9D

//vi.wikipedia.org/wiki/Th%E1%BA%A3o_lu%E1%BA%ADn:M%C3%BAi_gi%E1%BB%9D

Thực hiện bởi cloud365.vn

Bài Viết Liên Quan

Chủ Đề