dateTimeInvalidLocalFormat MDA

dateTimeInvalidLocalFormatتنشيط MDA عند DateTimeالمثيل هو sإلىred كما تم منسق "التوقيت العالمي" (UTC) استخدام منسق الذي تم إلى يمكن استخدامه فقط للمحلي DateTimeالمثيلات. Th MDA هو هو لم يتم تنشيط لعدم تعيينها أو بشكل افتراضي DateTimeالمثيلات.

العَرَض

تطبيق هو يدوياً تسلسل على التوقيت العالمي المتفق عليه DateTimeالمثيل باستخدام تنسيق محلي:

DateTime myDateTime = DateTime.UtcNow;
Serialize(myDateTime.ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffzzz"));

السبب

تنسيق 'z' DateTime.ToStringيتضمن أسلوب إزاحة المنطقة الزمنية المحلية، ل مثال، "+10: 00" ل Sydney الوقت. ، سيتم فقط تعطي نتائج ذات معنى إذا الالقيمة DateTimeهو المحلية. إذا كانت قيمة الوقت هو التوقيت العالمي المتفق عليه، DateTime.ToStringيتضمن إزاحة المنطقة الزمنية المحلية، ولكن هل لا dهوplay أو ضبط المحدد المنطقة الزمنية.

الدقة

UTC DateTimeيجب أن يتم منسق مثيلات بطريقة تشير إلى أنها UTC. تنسيق الموصى بها ل UTC مرات استخدام 'Z' لتدل على UTC الوقت:

DateTime myDateTime = DateTime.UtcNow;
Serialize(myDateTime.ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"));

هناك هو أيضا على تنسيق "o" serializes DateTimeاستخدام إجراء Kindخاصية serializes بشكل صحيح بغض النظر عن ما إذا كان المثيل هو المحلية، التوقيت العالمي المتفق عليه، أو غير محدد:

DateTime myDateTime = DateTime.UtcNow;
Serialize(myDateTime.ToString("o"));

التأثير تشغيل وقت التشغيل

لا يؤثر هذا MDA وقت التشغيل.

الإخراج

هناك هو لا إخراج خاص كنتيجة لترتيب تنشيط هو MDA.، على الرغم من ذلك، يمكن استخدام استدعاء المكدس لتحديد موقع ToStringالمكالمة التي تنشيط MDA.

التكوين

<mdaConfig>
  <assistants>
    <dateTimeInvalidLocalFormat />
  </assistants>
</mdaConfig>

مثال

خذ بعين الاعتبار تطبيق ما هو غير مباشر بتسلسل UTC DateTimeالقيمة باستخدام XmlConvertأو DataSetفئة، في الطريقة التالية.

DateTime myDateTime = DateTime.UtcNow;
String serialized = XMLConvert.ToString(myDateTime);

XmlConvertو DataSetserializations باستخدام التنسيقات المحلية للسلسلة بشكل افتراضي. خيارات إضافى مطلوبة لإجراء تسلسل لأنواع غير ذلك من DateTimeقيم، مثل UTC.

تشغيل سبيل المثال معينة، تمرير في XmlDateTimeSerializationMode.RoundtripKindإلى ToStringاستدعاء في XmlConvert. وهذا serializes بيانات كوقت التوقيت العالمي المتفق عليه.

في حالة استخدام DataSet، قم بتعيين DateTimeModeخاصية تشغيل DataColumnالكائن إلى Utc.

DateTime myDateTime = DateTime.UtcNow;
String serialized = XmlConvert.ToString(myDateTime, 
    XmlDateTimeSerializationMode.RoundtripKind);

راجع أيضًا:

المرجع

DateTimeFormatInfo

المبادئ

تشخيص الأخطاء مع المساعدين التصحيح مدارة