البرمجة

تحويل تاريخ بتنسيق معين إلى كائن datetime في Python

To convert the date strings to datetime objects in Python, you need to adjust the format string in strptime to match the format of your date strings. In your case, the correct format string should be "%Y-%m-%dT%H:%M:%S" without the fractional seconds part (.%f), as your date strings don’t include milliseconds. Here’s the corrected code:

python
import datetime d1 = '2015-06-25T18:45:24' d2 = '2015-07-11T18:45:35' d1 = datetime.datetime.strptime(d1, "%Y-%m-%dT%H:%M:%S") d2 = datetime.datetime.strptime(d2, "%Y-%m-%dT%H:%M:%S") print(abs((d2 - d1).days))

This should work without any errors and give you the difference between the two dates in days.

المزيد من المعلومات

بالتأكيد! في الكود السابق، قمت بتصحيح الخطأ الذي تسبب في ظهور رسالة الخطأ ValueError. السبب في حدوث هذا الخطأ هو أن تنسيق الوقت في الدالة strptime لا يتطابق تمامًا مع تنسيق الوقت في السلسلة النصية التي تقوم بتحويلها.

تنسيق الوقت في الدالة strptime يجب أن يتطابق تمامًا مع تنسيق الوقت في السلسلة النصية التي تقوم بتحويلها. في حالتك، يجب أن يكون الفرق بين التنسيقين هو أن الفرق الوحيد هو حرف “T” بين التاريخ والوقت. لذلك، عند تعديل تنسيق الوقت في الدالة strptime، يجب إزالة جزء .%f الذي يتعلق بالجزء الزائد من الثواني.

هذا التعديل يجعل التنسيق النهائي للتاريخ والوقت في الدالة strptime هو "%Y-%m-%dT%H:%M:%S"، وبذلك يمكن تحويل السلسلة النصية إلى كائن datetime بنجاح.

بعد ذلك، يمكنك استخدام دالة abs() للحصول على القيمة المطلقة لفارق الأيام بين الوقتين.

زر الذهاب إلى الأعلى