سؤال

هل يمكن لشخص ما أن يقول لي ما هو الخطأ في هذه القطعة من التعليمات البرمجية:

ShortDateFormat := 'dd/mm/yyyy';
j:=StrToDate('05/05/1999');

أظل الحصول على

An unhandled exception occurred at $000000000042FA33 :
EConvertError : Invalid date format

أنا أستخدم FPC.

هل كانت مفيدة؟

المحلول

أدخل هذا في التعليمات البرمجية الخاصة بك قبل StrToDate يتصل:

Writeln(DateTimeToStr(Date));

إذا كان الإخراج لا يحتوي / لكن شخصية أخرى، يجب عليك استخدام هذه الشخصية كفاصل في سلسلةك.

على نظامي هذا يعطي: 11.11.2009. وبعد إذا استخدمت بعد ذلك 05.05.1999انها تقوم بالعمل.

نصائح أخرى

من هنا (إعادة صياغة):

strtodate. لا تستخدم shortdateformat. للتحقق من التنسيق الفعلي؛ يستخدمها فقط لتحديد ترتيب ذ، م، د ثم يستخدم التمرين لتحديد حرف فاصل التاريخ الفعلي.

إذن ما تحتاجه هو:

ShortDateFormat := 'd/m/y';
DateSeparator := '/';
j:=StrToDate('05/05/1999');

قد ترغب في التفكير في إما:

  • إنقاذ ShortDateFormat و DateSeparator قبل القيام بذلك حتى تتمكن من استعادةها (يتم تعيينهم في البداية بناء على لغةك)؛ أو
  • باستخدام التواريخ بناء على الإعدادات الفعلية الخاصة بك، وليس تغيير تلك القيمتين على الإطلاق.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top