Chuyển string sang datetime trong python

Hướng dẫn cách chuyển datetime sang string trong python. Bạn sẽ học được cách chuyển thông tin thời gian chứa trong datetime sang kiểu string bằng phương thức strftime[] trong Python, và lựa chọn hiển thị thông tin thời gian đó dưới nhiều định dạng khác nhau. Bạn cũng sẽ học được cách hiển thị thông tin thời gian đó phù hợp với múi giờ lựa chọn thông qua hàm locale.setlocale[[] trong python sau bài học này.

Chúng ta có thể chuyển datetime sang string trong python và hiển thị thời gian đó dưới dạng string trong Python với nhiều kiểu khác nhau, ví dụ như là:

  • 2021-05-04 12:29:11
  • 2021/05/04
  • Wednesday, May 04, 2021

Chúng ta cũng có thể tính ra được ngày chỉ định là ngày thứ bao nhiêu trong năm, tuần trong năm. Chúng ta cũng có thể chuyển kiểu hiển thị ngày từ tiếng Anh sang tiếng Việt dựa theo múi giờ chỉ định, ví dụ như là ‘Thứ 5 ngày 4 tháng 5 năm 2021’ chẳng hạn.

Tất cả những điều đó đều có thể được giải quyết một cách đơn giản thông qua cách chuyển datetime sang string trong python bằng phương thức strftime[] trong Python.

Lại nữa, nếu bạn muốn làm ngược lại, hãy xem bài viết: Chuyển string sang datetime trong python.

Chuyển datetime sang string trong python

Cú pháp chuyển datetime sang string trong python

Để chuyển datetime sang string trong python, chúng ta dùng phương thức strftime[] trong python với cú pháp sau đây:

datetime.strftime[format]

Trong đó:

  • datetime là một instance datetime của class datetime chứa thông tin thời gian.
  • strftime là tên phương thức.
  • format là định dạng đầu ra của chuỗi tring.

Bảng định dạng ngày tháng năm trong chuỗi python

Định dạng đầu ra của chuỗi string được chỉ định bằng bảng định dạng ngày tháng năm trong chuỗi python dưới đây:

FormatÝ nghĩa
%y Năm có hai chữ số 00, 01, …, 99
%Y Tháng có 4 chữ số 0001, 0002, …, 9999
%b Viết tắt tên tháng Jan, Feb, …, Dec ※1
%B Tên tháng January, February, …, December ※1
%m Tháng 01, 02, …, 12
%d Ngày 01, 02, …, 31
%H Giờ[24 giờ] 00, 01, …, 23
%I Giờ[12 giờ] 00, 01, …, 11
%p AM or PM ※1
%M Phút 00, 01, …, 59
%S Giây 00, 01, …, 59
%f Micro giây 000000, 000001, …, 999999
%z Time zone, +0000, -0400 etc
%Z Time zone UTC, EST
%a Viết tắt của thứ Sun, Mon, …, Sat ※1
%A Thứ trong tuần Sunday, Monday, …, Saturday ※1
%c Hiển thị ngày giờ một cách thích hợp ※1
%x Hiển thị ngày tháng một cách thích hợp ※1
%X Hiển thị thời gian một cách thích hợp ※1

※1: Giá trị sẽ thay đổi thích hợp tùy theo locale đã đặt. Về cách chỉ định locale hãy xem ở phần dưới.

Sau đây chúng ta hãy cùng xem các ví dụ cụ thể về cách chuyển datetime sang string trong python như sau:

Chuyển thời gian chỉ định bất kỳ sang string trong python

Ví dụ chúng ta có một thông tin thời gian như sau : '2020/07/22 20:4:38'.

Chúng ta sẽ sử dụng hàm tạo datetime.datetime[] để tạo ra một instance datetime chứa thông tin thời gian ở trên như sau:

import datetime

mydt = datetime.datetime[2020, 7, 22, 20, 4, 38]
print[type[mydt]]
print[mydt]


Sau khi đã tạo ra datetime mydt ở trên, chúng ta sẽ sử dụng phương thức strftime[] trong python để chuyển datetime này sang string trong python như sau:

dt_str =  mydt.strftime["%Y/%m/%d %a %H:%M:%S"]
print[type[dt_str]]
print[dt_str]


Chúng ta cũng có thể thay đổi format của string và chuyển datetime sang string trong python với nhiều kết quả như sau:

print[mydt.strftime['%Y-%m-%d %H:%M:%S']]


print[mydt.strftime['%y%m%d']]


print[mydt.strftime['%A, %B %d, %Y']]


print[mydt.strftime['Ngày %d Tháng %m Năm %Y']]

Lại nữa, chúng ta cũng có thể tính số thứ tự của ngày trong năm, tuần trong năm của ngày chỉ định bằng cách thay đổi format của chuỗi string khi sử dụng phương thức strftime[] trong python như sau:


print['So thu tu cua ngay trong nam',mydt.strftime['|%j']]



print['So thu tu cua tuan trong nam',mydt.strftime['|%U']]



print['So thu tu cua tuan trong nam',mydt.strftime['|%W']]

Chuyển thời gian hiện tại sang string trong python

Để lấy datetime của thời gian hiện tại trong Python, chúng ta sẽ sử dụng tới hàm datetime.now[]. Trong trường hợp muốn lấy cả thông tin vè location, ví như như là bạn muốn lấy thời gian hiện tại của Hà Nội, có múi giờ thứ 7 chẳng hạn, chúng ta viết:

import datetime

hanoi_time = datetime.timezone[datetime.timedelta[hours=7]]
dt_now = datetime.datetime.now[hanoi_time]

print[type[dt_now]]
print[dt_now]



  • Xem thêm: Lấy ngày giờ hiện tại trong python bằng now[], time[] và timetz[]

Sau khi tạo ra instance datetime dt_now chứa thông tin thời gian hiện tại ở trên, chúng ta sẽ sử dụng phương thức strftime[] trong python để chuyển datetime này sang string trong python như sau:

dt_str =  dt_now.strftime["%Y/%m/%d %a %H:%M:%S"]
print[type[dt_str]]
print[dt_str]


Chúng ta cũng có thể thay đổi format của string và chuyển datetime sang string trong python với nhiều kết quả như sau:

print[dt_now.strftime['%Y-%m-%d %H:%M:%S']]


print[dt_now.strftime['%y%m%d']]


print[dt_now.strftime['%A, %B %d, %Y']]


print[dt_now.strftime['Ngày %d Tháng %m Năm %Y']]

Lại nữa, chúng ta cũng có thể tính số thứ tự của ngày trong năm, tuần trong năm của ngày hiện tại bằng cách thay đổi format của chuỗi string khi sử dụng phương thức strftime[] trong python như sau:


print['So thu tu cua ngay trong nam',dt_now.strftime['|%j']]



print['So thu tu cua tuan trong nam',dt_now.strftime['|%U']]



print['So thu tu cua tuan trong nam',dt_now.strftime['|%W']]

Lưu ý, ngoài module dateime ra, phương thức strftime còn được tích hợp sẵn trong các module time hoặc date.

Chỉ định locale trong datetime python

Ở bảng format ở trên, chúng ta đã biết các giá trị ngày tháng ở những cột có dấu ※1 sẽ thay đổi tùy thuộc vào locale [địa điểm] được chỉ định. Ví dụ nếu bạn chỉ định locale tại Việt Nam thì giá trị Monday sẽ chuyển thành Thứ hai , còn nếu chỉ định locale tại Nhật thì giá trị sẽ chuyển thành 月曜日 chẳng hạn.
Để chỉ định locale trong datetime python, chúng ta viết như sau:

import locale
locale.setlocale[locale.LC_ALL, ‘giá trị locale‘]

Trong đó giá trị locale sẽ quyết định locale được chỉ định.
Ví dụ chúng ta chỉ định locale tại Nhật như sau:

import locale
locale.setlocale[locale.LC_ALL, 'ja_JP.UTF-8']

Hoặc tại Việt Nam:

import locale
locale.setlocale[locale.LC_ALL, 'vi_VN.UTF-8']

Hãy xem một ví dụ hiển thị thời gian hiện tại với chỉ định locale tại Việt Nam với múi giờ thứ 7 như sau:

import datetime
import locale

locale.setlocale[locale.LC_ALL, 'vi_VN.utf8']

hanoi_tz = datetime.timezone[datetime.timedelta[hours=7]]
dt = datetime.datetime.now[hanoi_tz]

print[dt.strftime["|%Y/|%m/|%d |%a |%H:|%M:|%S"]]


print[dt.strftime["|%B |%d,|%Y |%p |%I:|%M:|%S:|%f|%z"]]

Một ví dụ khác hiển thị thời gian hiện tại khi chỉ định locale tại Nhật Bản với múi giờ thứ 9:

import datetime
import locale

locale.setlocale[locale.LC_ALL, 'ja_JP.UTF-8']

tokyo_tz = datetime.timezone[datetime.timedelta[hours=9]]
dt = datetime.datetime.now[tokyo_tz]

print[dt.strftime["|%y/|%m/|%d |%A |%H:|%M:|%S"]]


print[dt.strftime["|%B |%d,|%Y |%p |%I:|%M:|%S|%z"]]


print[dt.strftime["|%c"]]

Lưu ý là chúng ta cần chạy các dòng code trên ở phần mềm python hoặc Anaconda đã được cài trên máy, do module này cần lấy thông tin bạn đã thiết đặt trong đồng hồ ở hệ điều hành. Nếu chúng ta chạy code trên tại các nền tảng Online như Paiza.io chẳng hạn thì lỗi sẽ xảy ra.

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

Trên đây Kiyoshi đã hướng dẫn bạn về cách chuyển datetime sang string trong pythonrồ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é.

Trong trường hợp bạn muốn chuyển ngược lại giữa string và dattime, hãy tham khảo bài viết chuyển string sang datetime trong python nhé.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="//creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="//www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="//images.dmca.com/Badges/DMCABadgeHelper.min.js">

Bài viết liên quan

  • Chuyển string sang datetime trong python

  • Cộng trừ ngày tháng và so sánh thời gian trong python

  • Sử dụng module Datetime trong python

  • Lấy ngày tháng năm và giờ trong python

  • Đồng hồ bấm giờ python

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

  • Tính thời gian chạy python

  • Biến trong python là gì

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>15. datetime trong python

Bài sau
Lấy ngày tháng năm và giờ trong python
Bài tiếp
Chuyển string sang datetime trong python
  • Bài viết mới nhất
  • Tách chuỗi trong PHP [explode, preg_split] tháng 9 17, 2022
  • Cắt chuỗi trong PHP [substr, mb_substr] tháng 9 17, 2022
  • Tách chuỗi thành mảng trong PHP [explode] tháng 9 17, 2022
  • Tìm kiếm chuỗi trong PHP [strpos] tháng 9 17, 2022
  • Đếm số lần xuất hiện của ký tự và chuỗi trong chuỗi PHP [substr_count] tháng 9 17, 2022
  • Chuyển chuỗi thành mảng trong PHP [str_split, mb_str_split] tháng 9 17, 2022
  • Tách từng ký tự trong chuỗi PHP [substr, preg_split] tháng 9 17, 2022
  • Xóa ký tự trong chuỗi PHP tháng 9 15, 2022
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.

Chủ Đề