تحويل تاريخ بتنسيق معين إلى كائن 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:
pythonimport 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()
للحصول على القيمة المطلقة لفارق الأيام بين الوقتين.