CÔNG CỤ
MODULES
THAM KHẢO
Cách chia List thành các phần bằng nhau trong Python Cách xóa một khóa (key) ra khỏi dictionary trong Python Hướng dẫn chuyển đổi file Google Colab sang Markdown trong Python Bài tập Python: Lập trình cơ sở dữ liệu trong Python Kết nối cơ sở dữ liệu MySQL Python Hướng dẫn kết nối Python PostgreSQL bằng Psycopg2 Hướng dẫn kết nối SQLite sử dụng sqlite3 trong Python Bài tập Python : Pandas trong Python Phạm vi số float của Python Cách lên lịch chạy script Python bằng GitHub Actions Cách tạo hằng số trong Python Các nền tảng lưu trữ tốt nhất cho ứng dụng và script Python 6 Tip viết vòng lặp For hiệu quả hơn trong Python Cách đảo ngược Chuỗi String trong Python Cách gỡ lỗi ứng dụng Python trong Docker Container bằng VS Code 10 tip One Liner bạn cần biết trong Python Cách áp dụng ngưỡng hình ảnh trong Python với NumPy Tìm hiểu về các phép toán Groupby trong Pandas Lập trình Socket trong Python Mô-đun base64 trong Python Cách giới hạn float values trong Python Tìm hiểu Mô-đun statistics Trong Python File Organizing trong Python Đổi tên File trong Python Tìm hiểu về Deque trong Python Mô-đun Calendar trong Python Tìm hiểu về Enum trong Python Sử dụng pprint trong Python Làm việc với cấu trúc Dữ liệu Stack trong Python Thư viện functools trong Python Tip sử dụng hàm round() với tham số âm trong Python Hàm print có thể nhận thêm các tham số bổ sung trong Python Tip tìm chuỗi dài nhất bằng hàm max() trong Python Cách lặp qua nhiều list với hàm zip() trong Python Tìm hiểu về MLOps trong Python Docker và Kubernetes với MLOps trong Python Kết hợp DevOps với MLOps trong Python Xử lý độ chính xác các hàm floor, ceil, round, trunc, format trong Python tối ưu quy trình MLOps Với Python Sự khác biệt giữa byte objects và string trong Python Top 4 thư viện phổ biến nhất của NLP trong Python Cách sử dụng ThreadPoolExecutor trong Python Phân tích dữ liệu Blockchain với Python Hướng dẫn triển khai Smart Contracts với Python Blockchain APIs với Python Làm việc với file ZIP trong Python Sự khác biệt giữa toán tử == và is trong Python Chuyển đổi kiểu dữ liệu trong Python Cách làm việc với file tarball/tar trong Python Sự khác biệt giữa iterator và iterable trong Python Sự khác biệt giữa set() và frozenset() trong Python Làm việc với các biến môi trường trong Python Một tác vụ phổ biến khi làm việc với danh sách trong Python Định dạng chuỗi Strings trong Python Sử dụng Poetry để quản lý dependencies trong Python Sự khác biệt giữa sort() và sorted() trong Python Từ khóa yield trong Python Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass Cách truy cập và thiết lập biến môi trường trong Python Hướng dẫn toàn diện về module datetime trong Python Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python Quản lý sinh viên Python & MySQL
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.

Chuyển chuỗi Python thành DateTime trong Python

Trong bài viết này, mình sẽ tìm hiểu cách chuyển đổi một chuỗi thành đối tượng ngày giờ trong Python bằng cách sử dụng hàm strptime() cùng với các mã định dạng ngày thường được sử dụng. Bên cạnh đó, mình cũng sẽ khám phá cách sử dụng các phương thức tương tự từ các mô-đun khác để thực hiện việc chuyển đổi này.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Các bước để chuyển đổi chuỗi thành datetime trong Python

Trong một số trường hợp, ngày và giờ có thể được chuyển thành đối tượng chuỗi. Để chuyển đổi một chuỗi thành một datetime đối tượng, mình có thể sử dụng strptime() chức năng của mô-đun datetime.

Ví dụ: bạn có thể cần chuyển đổi một chuỗi số như 17-06-2022 thành một datetime đối tượng,hoặc bạn muốn chuyển đổi chuỗi đại diện cho các ngày như Thứ Hai, ngày 17 tháng 6 năm 2021 thành một datetime đối tượng.

Các bước dưới đây cho thấy cách chuyển đổi một chuỗi biểu thị ngày thành đối tượng ngày giờ.

Bài viết này được đăng tại [free tuts .net]

Bước 1: Nhập mô-đun ngày giờ.

Trước hết, bạn cần phải nhập mô-đun datetime để có thể sử dụng các lớp và hàm liên quan đến thời gian và ngày giờ.

from datetime import datetime

Bước 2: Sử dụng hàm strptime() của lớp datetime.

Hàm strptime() cho phép bạn phân tích một chuỗi theo định dạng cho trước và tạo ra một đối tượng datetime từ chuỗi đó. Định dạng được sử dụng để chỉ ra cách chuỗi được biểu diễn theo ngày giờ.

date_string = "2023-08-16 15:30:00"
date_format = "%Y-%m-%d %H:%M:%S"
converted_datetime = datetime.strptime(date_string, date_format)
print(converted_datetime)

Trong ví dụ trên, date_string là chuỗi bạn muốn chuyển đổi và date_format là định dạng của chuỗi đó. Trong trường hợp này, chuỗi có định dạng 'YYYY-MM-DD HH:MM:SS', tương ứng với năm, tháng, ngày, giờ, phút và giây.

Bước 3: Sử dụng hàm strptime() của mô-đun thời gian.

Ngoài việc sử dụng strptime() từ lớp datetime, bạn cũng có thể sử dụng strptime() từ mô-đun time. Tuy nhiên, trong trường hợp này, bạn sẽ nhận được một đối tượng struct_time.

import time

date_string = "2023-08-16 15:30:00"
date_format = "%Y-%m-%d %H:%M:%S"
converted_struct_time = time.strptime(date_string, date_format)
print(converted_struct_time)

Trong ví dụ này, converted_struct_time sẽ là một đối tượng struct_time chứa thông tin về năm, tháng, ngày, giờ, phút, giây và các thành phần khác của thời gian.

anh12 jpg

Ví dụ: Phân tích chuỗi thành ngày giờ

Cú pháp :

datetime.strptime(date_string, format)

Sau đây là ví dụ trong đó chúng tôi có một chuỗi biểu thị ngày và giờ ở định dạng chuẩn ( dd/mm/yyyy hh:mm:ss).

from datetime import datetime

# Date String in dd/mm/yyyy HH:MM:SS format
dt_string = "12/06/2021 09:15:32"

# Convert string to datetime object
dt_object = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print(dt_object)

# Output 2021-06-12 09:15:32

Đối tượng chuỗi đến ngày

Để làm điều này, bạn có thể sử dụng lớp datetime từ mô-đun datetime như sau:

from datetime import datetime

# Chuỗi ngày cần chuyển đổi
date_string = "2023-08-16"

# Định dạng của chuỗi ngày
date_format = "%Y-%m-%d"

# Sử dụng datetime.strptime() để chuyển đổi chuỗi thành đối tượng datetime
date_object = datetime.strptime(date_string, date_format).date()

# In ra đối tượng ngày đã tạo
print("Đối tượng ngày:", date_object)

Trong ví dụ này:

  • datetime.strptime() được sử dụng để chuyển đổi chuỗi thành đối tượng datetime.
  • .date() được sử dụng để lấy phần ngày của đối tượng datetime, tạo thành một đối tượng ngày riêng lẻ.

Lưu ý rằng phần giờ, phút và giây sẽ được đặt về giá trị mặc định (00:00:00) khi bạn lấy phần ngày từ đối tượng datetime.

Chuỗi thành time đối tượng

Bạn có thể sử dụng datetime.time lớp để chuyển đổi một chuỗi chứa thời gian thành một timeđối tượng.

  • Đầu tiên, chuyển đổi một chuỗi thành một datetime đối tượng
  • Sử dụng datetime.time() chức năng để chỉ trích xuất timeđối tượng từ phiên bản datetime.
from datetime import datetime

# Convert string to datetime.time object
time_obj = datetime.strptime("12/06/2023 09:15:32", "%d/%m/%Y %H:%M:%S").time()
print(time_obj)

# Output 09:15:32

Lưu ý : Nếu một chuỗi đại diện cho thời gian không có ngày, chỉ sử dụng %H/%M/%S mã định dạng.

t_object = datetime.strptime("11:45:23", "%H:%M:%S").time()

Chuỗi thành time đối tượng bằng Mô-đun thời gian

Mình có thể sử dụng phương thức () của mô-đun thời gian strptime để chuyển đổi thời gian ở định dạng chuỗi thành đối tượng thời gian ở time.struct_time định dạng.

Cú pháp :

time.strptime(string[, format])

Mình hãy xem một ví dụ trong đó ta có một chuỗi đề cập đến thời gian ở định dạng giờ-phút-giây (hh:mm:ss).

Ví dụ :

import time

# time hours-minutes-seconds format
time_string = "09-15-09"
format_codes = "%H-%M-%S"

time_obj = time.strptime(time_string, format_codes)
print("Time Object", time_obj)
print(type(time_obj))

Làm thế nào strptime() hoạt động?

strptime() là một phương thức của lớp datetime trong Python, và nó được sử dụng để phân tích (parse) một chuỗi đại diện cho thời gian thành một đối tượng datetime. Tên của phương thức có ý nghĩa như sau:

  • "str" là viết tắt của "string" (chuỗi), là loại dữ liệu đầu vào bạn muốn phân tích.
  • "ptime" đại diện cho "parsed time" (thời gian đã được phân tích).

Cú pháp của phương thức strptime() như sau:

datetime.strptime(date_string, format)

Trong đó:

  • date_string là chuỗi bạn muốn chuyển đổi thành đối tượng datetime.
  • format là định dạng của chuỗi, chỉ định cách mà chuỗi được biểu diễn theo ngày giờ.

Ví dụ, nếu bạn có một chuỗi "2023-08-16 15:30:00" và muốn chuyển nó thành một đối tượng datetime, bạn có thể làm như sau:

from datetime import datetime

date_string = "2023-08-16 15:30:00"
date_format = "%Y-%m-%d %H:%M:%S"
converted_datetime = datetime.strptime(date_string, date_format)
print(converted_datetime)

Ở đây, "%Y-%m-%d %H:%M:%S" là định dạng của chuỗi "2023-08-16 15:30:00", trong đó %Y đại diện cho năm, %m đại diện cho tháng, %d đại diện cho ngày, %H đại diện cho giờ (24h), %M đại diện cho phút và %S đại diện cho giây.

Khi bạn gọi datetime.strptime(date_string, date_format), phương thức sẽ phân tích chuỗi date_string theo định dạng date_format và tạo ra một đối tượng datetime tương ứng.

strptime() mã định dạng

Khi bạn sử dụng phương thức strptime() để chuyển đổi một chuỗi thành một đối tượng datetime, bạn cần xác định mã định dạng (format codes) để chỉ ra cách mà các phần của chuỗi biểu diễn ngày giờ. Dưới đây là một số mã định dạng phổ biến mà bạn có thể sử dụng trong strptime():

Mã định dạng Sự miêu tả Ví dụ
%d Ngày trong tháng dưới dạng số thập phân không đệm. CN, Mon, …, Sat (en_US);
Vì vậy, Mo, …, Sa (de_DE)
%m Tháng trong năm dưới dạng số thập phân không đệm. Chủ Nhật, Thứ Hai, …, Thứ Bảy (en_US);
Sonntag, Montag, …, Samstag (de_DE)
%Y Một năm với một thế kỷ ở định dạng bốn chữ số 0001, 2021, … , 9999
%y Một năm không có thế kỷ ở định dạng hai chữ số 01, 21, …, 31
%A Tên đầy đủ của một ngày trong tuần theo tên của ngôn ngữ. Chủ Nhật, …, Thứ Bảy (en_US);
Sonntag, …, Samstag (de_DE)
%a Tên viết tắt của một ngày trong tuần làm tên viết tắt của ngôn ngữ. CN, …, Sat (en_US);
Vì vậy, …, Sa (de_DE)
%B Tên đầy đủ của một tháng theo tên của miền địa phương Tháng Giêng, …, Tháng Mười Hai (en_US);
tháng một, …, tháng mười hai (de_DE)
%b Tên viết tắt của một tháng là tên viết tắt của ngôn ngữ. Tháng 1, …, Tháng 12 (en_US);
Tháng Giêng, …, Dez (de_DE)
%H Giờ (đồng hồ 24 giờ) dưới dạng số thập phân không đệm. 01, 02, … , 23
%I Giờ (đồng hồ 12 giờ) dưới dạng số thập phân không đệm. 01, 02, …, 12
%p Ngôn ngữ tương đương với AM hoặc PM. AM, PM (en_US);
sáng, chiều (de_DE)
%M Phút dưới dạng số thập phân không đệm. 00, 01, …, 59
%S Thứ hai dưới dạng số thập phân không đệm. 00, 01, …, 59
%f Micro giây dưới dạng số thập phân, không đệm ở bên trái. 000000, 000001, …, 999999
%z UTC offset ở dạng ±HHMM[SS[.ffffff]] (chuỗi trống nếu đối tượng là ngây thơ). (trống), +0000, -0400, +1030, +063415, -030712.345216
%Z Tên múi giờ (chuỗi trống nếu đối tượng là ngây thơ). (trống), UTC, GMT
%j Ngày trong năm dưới dạng số thập phân không đệm. 001, 002, …, 366
%U Số tuần của năm (Chủ nhật là ngày đầu tiên của tuần) dưới dạng số thập phân không đệm. Tất cả các ngày trong năm mới trước Chủ nhật đầu tiên được coi là trong tuần 0. 00, 01, …, 53
%W Số tuần của năm (thứ hai là ngày đầu tuần) dưới dạng số thập phân. Tất cả các ngày trong năm mới trước ngày thứ Hai đầu tiên được coi là trong tuần 0. 00, 01, …, 53
%c Đại diện ngày và giờ thích hợp của địa phương. Thứ ba ngày 16 tháng 8 21:30:00 1988 (en_US);
Ngày 16 tháng 8, 21:30:00, 1988 (de_DE)
%x Đại diện ngày thích hợp của địa phương. 16/08/88 (Không có);
16/08/1988 (en_US);
16.08.1988 (de_DE)
%X Đại diện thời gian thích hợp của địa phương. 21:30:00 (vi_Mỹ);
21:30:00 (de_DE)
%% Một '%' nhân vật theo nghĩa đen. %

Kết bài

Qua bài viết trên, chuyển chuỗi thành đối tượng DateTime là một phần quan trọng khi làm việc với thời gian. Thư viện datetime cung cấp phương thức strptime() cho phép ta dễ dàng biến đổi chuỗi thời gian thành DateTime. Bằng cách xác định định dạng và sử dụng phương thức này, chúng ta có thể tạo ra đối tượng DateTime từ chuỗi dễ dàng và linh hoạt.Chúc bạn thành công.

Cùng chuyên mục:

Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python

Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python

Hướng dẫn toàn diện về module datetime trong Python

Hướng dẫn toàn diện về module datetime trong Python

Cách truy cập và thiết lập biến môi trường trong Python

Cách truy cập và thiết lập biến môi trường trong Python

Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass

Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass

Từ khóa yield trong Python

Từ khóa yield trong Python

Sự khác biệt giữa sort() và sorted() trong Python

Sự khác biệt giữa sort() và sorted() trong Python

Sử dụng Poetry để quản lý dependencies trong Python

Sử dụng Poetry để quản lý dependencies trong Python

Định dạng chuỗi Strings trong Python

Định dạng chuỗi Strings trong Python

Một tác vụ phổ biến khi làm việc với danh sách trong Python

Một tác vụ phổ biến khi làm việc với danh sách trong Python

Làm việc với các biến môi trường trong Python

Làm việc với các biến môi trường trong Python

Sự khác biệt giữa set() và frozenset() trong Python

Sự khác biệt giữa set() và frozenset() trong Python

Sự khác biệt giữa iterator và iterable trong Python

Sự khác biệt giữa iterator và iterable trong Python

Cách làm việc với file tarball/tar trong Python

Cách làm việc với file tarball/tar trong Python

Chuyển đổi kiểu dữ liệu trong Python

Chuyển đổi kiểu dữ liệu trong Python

Sự khác biệt giữa toán tử == và is trong Python

Sự khác biệt giữa toán tử == và is trong Python

Làm việc với file ZIP trong Python

Làm việc với file ZIP trong Python

Cách sử dụng ThreadPoolExecutor trong Python

Cách sử dụng ThreadPoolExecutor trong Python

Sự khác biệt giữa byte objects và string trong Python

Sự khác biệt giữa byte objects và string trong Python

Xử lý độ chính xác các hàm floor, ceil, round, trunc, format  trong Python

Xử lý độ chính xác các hàm floor, ceil, round, trunc, format trong Python

Cách lặp qua nhiều list với hàm zip() trong Python

Cách lặp qua nhiều list với hàm zip() trong Python

Top