Cụ thể tôi có mã đơn giản hóa điều này:
from datetime import datetime date_string = '2009-11-29 03:17 PM' format = '%Y-%m-%d %H:%M %p' my_date = datetime.strptime(date_string, format) # This prints '2009-11-29 03:17 AM' print my_date.strftime(format)Đưa cái gì? Python chỉ bỏ qua trình xác định thời gian khi phân tích ngày hay tôi đang làm điều gì đó ngu ngốc?
ARK
7397 Huy hiệu bạc20 Huy hiệu Đồng7 silver badges20 bronze badges
Đã hỏi ngày 18 tháng 11 năm 2009 lúc 22:04Nov 18, 2009 at 22:04
Ngân hàng Kenan BankskenanKenan Banks
Huy hiệu vàng 202K3434 gold badges151 silver badges171 bronze badges
0
Các tài liệu Python time.strftime nói:
Khi được sử dụng với hàm strptime (), chỉ thị %p chỉ ảnh hưởng đến trường Giờ đầu ra nếu chỉ thị %I được sử dụng để phân tích thời gian.%p directive only affects the output hour field if the %I directive is used to parse the hour.
Chắc chắn, thay đổi %H của bạn thành %I làm cho nó hoạt động.
Mattdmo
98.3K20 Huy hiệu vàng236 Huy hiệu bạc228 Huy hiệu Đồng20 gold badges236 silver badges228 bronze badges
Đã trả lời ngày 18 tháng 11 năm 2009 lúc 22:07Nov 18, 2009 at 22:07
Ned Batchelderned BatchelderNed Batchelder
353K71 Huy hiệu vàng552 Huy hiệu bạc650 Huy hiệu Đồng71 gold badges552 silver badges650 bronze badges
3
format = '%Y-%m-%d %H:%M %p'
Định dạng đang sử dụng %H thay vì %I. Vì %H là định dạng "24 giờ", nên có khả năng sẽ loại bỏ thông tin %p. Nó hoạt động tốt nếu bạn thay đổi %H thành %I.
Đã trả lời ngày 18 tháng 11 năm 2009 lúc 22:09Nov 18, 2009 at 22:09
Bạn đã sử dụng %H (định dạng 24 giờ) thay vì %I (định dạng 12 giờ).
Đã trả lời ngày 18 tháng 11 năm 2009 lúc 22:09Nov 18, 2009 at 22:09
Bạn đã sử dụng %H (định dạng 24 giờ) thay vì %I (định dạng 12 giờ).Tim Pietzcker
Tim Pietzckertim Pietzcker57 gold badges494 silver badges550 bronze badges
Phù bằng vàng 319K57
Hãy thử thay thế %h (giờ trên đồng hồ 24 giờ) bằng %i (giờ trên đồng hồ 12 giờ)?Nov 18, 2009 at 22:08
Đã trả lời ngày 18 tháng 11 năm 2009 lúc 22:08keithjgrant
Keithjgrantkeithjgrant5 gold badges51 silver badges87 bronze badges
>>> from datetime import datetime >>> print(datetime.today().strftime("%H:%M %p")) 15:31 AM
12.2k5 Huy hiệu vàng51 Huy hiệu bạc87 Huy hiệu đồng
Hãy thử thay thế %I bằng %H.Nov 4, 2020 at 14:04
1
Một chuỗi S đại diện cho thời gian ở định dạng 24 giờ hh: mm được truyền dưới dạng đầu vào. Chương trình phải tìm nếu đó là AM hoặc PM và in nó dưới dạng đầu ra. Nếu thời gian không hợp lệ được truyền làm đầu vào, chương trình phải in không hợp lệ
Điều kiện biên: 12:00 là buổi trưa và PM phải được in dưới dạng đầu ra. 00:00 hoặc 24:00 là nửa đêm và AM phải được in dưới dạng đầu ra.
Định dạng đầu vào: Dòng đầu tiên sẽ chứa giá trị chuỗi S đại diện cho thời gian ở định dạng HH: mm.
Định dạng đầu ra: Dòng đầu tiên sẽ chứa đầu ra là AM hoặc PM quan trọng: đầu ra nhạy cảm trường hợp. Do đó in AM hoặc PM trong trường hợp trên.
Mẫu đầu vào/đầu ra: Ví dụ 1: Đầu vào: 13: 44
Example 1: Input:
13:44
Output:PM
PM
Ví dụ 2: Đầu vào: 12: 00
12:00
Output:PM
PM
Ví dụ 3: Đầu vào: 32: 70
32:70
Output:INVALIDINPUT
INVALIDINPUT
Ví dụ 4: Đầu vào: 05: 32
05:32
Output:AM
AM