Trước đó chúng ta đã thấy làm thế nào để có được phần ngày một mình từ DateTime hiện tại. Bây giờ chúng ta sẽ xem cách chuyển đổi đối tượng ngày thành định dạng chuỗi MM/DD/YYYY truyền thống Hoa Kỳ. Cách dễ nhất để định dạng đối tượng ngày là sử dụng phương thức Date.strptime []. Đây là một ví dụ.MM/DD/YYYY string format. The easiest way to format the date object is to use the
date.strptime[] method. Here is an example.## Convert date to MM/DD/YYYY format in Python
import datetime
current_day = datetime.date.today[]
print["\n Default Date Object:", current_day, "\n"]
formatted_date = datetime.date.strftime[current_day, "%m/%d/%Y"]
print["\n Formatted Date String:", formatted_date, "\n"]
Tài liệu tham khảo
- Về phương thức strftime [] tại các tài liệu python.
Sử dụng tập lệnh Python, tôi cần đọc một tệp CVS trong đó ngày được định hình là DD/mm/yyyy và chuyển đổi chúng thành yyyy-mm-dd trước khi lưu điều này vào cơ sở dữ liệu SQLite.
Điều này gần như hoạt động, nhưng thất bại vì tôi không cung cấp thời gian:
from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
Tôi giả sử có một phương thức trong đối tượng DateTime để thực hiện chuyển đổi này rất dễ dàng, nhưng tôi không thể tìm thấy một ví dụ về cách thực hiện. Cảm ơn bạn.
hỏi ngày 2 tháng 2 năm 2009 lúc 10:01Feb 2, 2009 at 10:01
Mã ví dụ của bạn là sai. Những công việc này:
import datetime
datetime.datetime.strptime["21/12/2008", "%d/%m/%Y"].strftime["%Y-%m-%d"]
Cuộc gọi đến Strptime [] phân tích đối số đầu tiên theo định dạng được chỉ định trong lần thứ hai, vì vậy hai người đó cần phải khớp. Sau đó, bạn có thể gọi strftime [] để định dạng kết quả vào định dạng cuối cùng mong muốn.
Hans Z.
47.9K11 Huy hiệu vàng97 Huy hiệu bạc112 Huy hiệu đồng11 gold badges97 silver badges112 bronze badges
Đã trả lời ngày 2 tháng 2 năm 2009 lúc 10:09Feb 2, 2009 at 10:09
Khả năng thư giãnunwind
384K64 Huy hiệu vàng463 Huy hiệu bạc595 Huy hiệu Đồng64 gold badges463 silver badges595 bronze badges
1
Trước tiên, bạn cần chuyển đổi chuỗi thành Tuple DateTime, sau đó chuyển đổi bộ dữ liệu đó thành chuỗi, nó sẽ như thế này:
lastconnection = datetime.strptime["21/12/2008", "%d/%m/%Y"].strftime['%Y-%m-%d']
Đã trả lời ngày 2 tháng 2 năm 2009 lúc 10:07Feb 2, 2009 at 10:07
SilentghostsilentghostSilentGhost
295K64 Huy hiệu vàng301 Huy hiệu bạc291 Huy hiệu Đồng64 gold badges301 silver badges291 bronze badges
1
Tôi mới lập trình. Tôi muốn chuyển đổi từ
from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
2 sang from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
3 để in ra một ngày ở định dạng mà mọi người trong phần của tôi sử dụng và nhận ra.Câu trả lời được chấp nhận ở trên đã giúp tôi đi đúng hướng.
Câu trả lời tôi đã kết thúc với vấn đề của mình là:
import datetime
today_date = datetime.date.today[]
print[today_date]
new_today_date = today_date.strftime["%d/%m/%Y"]
print [new_today_date]
Hai dòng đầu tiên sau khi tuyên bố nhập khẩu đưa ra ngày hôm nay ở định dạng Hoa Kỳ [2017-01-26]. Hai dòng cuối cùng chuyển đổi nó thành định dạng được công nhận ở Anh và các quốc gia khác [26/01/2017].
Bạn có thể rút ngắn mã này, nhưng tôi đã để nó như là vì nó hữu ích cho tôi khi mới bắt đầu. Tôi hy vọng điều này giúp các lập trình viên mới bắt đầu khác bắt đầu!
Siha
7.22212 Huy hiệu vàng32 Huy hiệu bạc42 Huy hiệu đồng12 gold badges32 silver badges42 bronze badges
Đã trả lời ngày 26 tháng 1 năm 2017 lúc 12:37Jan 26, 2017 at 12:37
MarkmarkMark
3754 Huy hiệu bạc10 Huy hiệu Đồng4 silver badges10 bronze badges
2
Có ai khác nghĩ rằng đó là một sự lãng phí để chuyển đổi các chuỗi này cho đến ngày/thời gian cho những gì, cuối cùng, một chuyển đổi văn bản đơn giản? Nếu bạn chắc chắn rằng ngày đến sẽ hợp lệ, bạn chỉ có thể sử dụng:
>>> ddmmyyyy = "21/12/2008"
>>> yyyymmdd = ddmmyyyy[6:] + "-" + ddmmyyyy[3:5] + "-" + ddmmyyyy[:2]
>>> yyyymmdd
'2008-12-21'
Điều này gần như chắc chắn sẽ nhanh hơn so với chuyển đổi sang và từ một ngày.
Đã trả lời ngày 2 tháng 2 năm 2009 lúc 10:53Feb 2, 2009 at 10:53
Paxdiablopaxdiablopaxdiablo
829K227 Huy hiệu vàng1550 Huy hiệu bạc1919 Huy hiệu Đồng227 gold badges1550 silver badges1919 bronze badges
2
#case_date= 03/31/2020
#Above is the value stored in case_date in format[mm/dd/yyyy ]
demo=case_date.split["/"]
new_case_date = demo[1]+"-"+demo[0]+"-"+demo[2]
#new format of date is [dd/mm/yyyy] test by printing it
print[new_case_date]
Đã trả lời ngày 10 tháng 4 năm 2020 lúc 13:19Apr 10, 2020 at 13:19
Nếu bạn cần chuyển đổi toàn bộ cột [từ
from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
4 from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
5], trước tiên hãy chuyển đổi nó [from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
4 from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
7] sang định dạng from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
8 bằng cách sử dụng from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
9 và sau đó sử dụng import datetime
datetime.datetime.strptime["21/12/2008", "%d/%m/%Y"].strftime["%Y-%m-%d"]
0:def conv_dates_series[df, col, old_date_format, new_date_format]:
df[col] = pd.to_datetime[df[col], format=old_date_format].dt.strftime[new_date_format]
return df
Sử dụng mẫu:import pandas as pd
test_df = pd.DataFrame[{"Dates": ["1900-01-01", "1999-12-31"]}]
old_date_format='%Y-%m-%d'
new_date_format='%d/%m/%Y'
conv_dates_series[test_df, "Dates", old_date_format, new_date_format]
Dates
0 01/01/1900
1 31/12/1999
Đã trả lời ngày 5 tháng 4 năm 2020 lúc 19:10Apr 5, 2020 at 19:10
Mirekphdmirekphdmirekphd
3.36826 huy hiệu bạc45 huy hiệu đồng26 silver badges45 bronze badges
Cách đơn giản nhất
Trong khi đọc tệp CSV, hãy đặt một đối số
import datetime
datetime.datetime.strptime["21/12/2008", "%d/%m/%Y"].strftime["%Y-%m-%d"]
1df = pd.read_csv["sample.csv", parse_dates=['column_name']]
Điều này sẽ chuyển đổi ngày của cột được đề cập thành định dạng Yyyy-MM-DD
Josef
2.3902 Huy hiệu vàng21 Huy hiệu bạc22 Huy hiệu đồng2 gold badges21 silver badges22 bronze badges
Đã trả lời ngày 9 tháng 5 năm 2021 lúc 8:16May 9, 2021 at 8:16
Chuyển đổi định dạng ngày dd/mm/yyyy sang yyyy-mm-dd Theo câu hỏi của bạn, bạn có thể sử dụng điều này:
from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
0Đã trả lời ngày 2 tháng 11 năm 2021 lúc 9:42Nov 2, 2021 at 9:42
RokidguptarokidguptaRokiDGupta
3311 Huy hiệu vàng6 Huy hiệu bạc13 Huy hiệu đồng1 gold badge6 silver badges13 bronze badges
2 là khung dữ liệu của bạnimport datetime datetime.datetime.strptime["21/12/2008", "%d/%m/%Y"].strftime["%Y-%m-%d"]
3 là cột mà bạn muốn thay đổiimport datetime datetime.datetime.strptime["21/12/2008", "%d/%m/%Y"].strftime["%Y-%m-%d"]
Cột này phải có trong kiểu dữ liệu
import datetime
datetime.datetime.strptime["21/12/2008", "%d/%m/%Y"].strftime["%Y-%m-%d"]
4.from datetime import datetime
lastconnection = datetime.strptime["21/12/2008", "%Y-%m-%d"]
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
1
Peter Csala
13.2K15 Huy hiệu vàng25 Huy hiệu bạc60 Huy hiệu đồng15 gold badges25 silver badges60 bronze badges
Đã trả lời ngày 30 tháng 12 năm 2021 lúc 8:33Dec 30, 2021 at 8:33
1