سلسلة باسكال حتى الآن
-
19-09-2019 - |
سؤال
هل يمكن لشخص ما أن يقول لي ما هو الخطأ في هذه القطعة من التعليمات البرمجية:
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
قبل القيام بذلك حتى تتمكن من استعادةها (يتم تعيينهم في البداية بناء على لغةك)؛ أو - باستخدام التواريخ بناء على الإعدادات الفعلية الخاصة بك، وليس تغيير تلك القيمتين على الإطلاق.
لا تنتمي إلى StackOverflow