كيف يمكنني تحديد ما إذا كان تاريخ معين يعمل بالتوقيت الصيفي لمنطقة زمنية معينة في .NET 2.0؟

StackOverflow https://stackoverflow.com/questions/44795

سؤال

أنا أستخدم .NET 2.0، وأعمل ضمن الثقة المتوسطة (لذا معلومات المنطقة الزمنية والتسجيل غير مسموح بخيارات).أطلب من المستخدم تاريخين ومنطقة زمنية، وأحب حقًا أن أتمكن من تحديد ما إذا كنت بحاجة إلى ضبط المنطقة الزمنية للتوقيت الصيفي تلقائيًا.

ربما لا يكون هذا سيناريو صالحًا إلا إذا كان لدي بعض منه جداً دعم قوي، لا معلومات المنطقة الزمنية, ، للتمييز بين جميع الأنواع المختلفة للمناطق الزمنية في المقام الأول.

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

المحلول

في .NET 2.0 عليك كتابة هذا الكود بنفسك.يتضمن البحث عن قوانين التوقيت الصيفي في مناطق مختلفة وإدراجها في هياكل البيانات الخاصة بك.يتم تبسيط المشكلة إلى حد ما إذا كنت تهتم فقط بمجموعة فرعية من المناطق الزمنية، على سبيل المثال في الولايات المتحدة الأمريكية فقط، ولكن إذا كنت بحاجة إلى جميع المناطق الزمنية العالمية، فلديك الكثير من العمل الذي يتعين عليك القيام به، ومن ثم يجب تحديث الكود كل سنوات قليلة عندما تتغير القوانين.حتى كائنات المنطقة الزمنية الجديدة في الإصدار الأحدث من .NET ستتطلب تحديثات Windows لإبقائها صحيحة مع تغير القوانين.

ينظر هنا, هنا, ، و هنا لمزيد من المعلومات.

نصائح أخرى

ال قاعدة بيانات TZ هي قاعدة بيانات عامة لقواعد المنطقة الزمنية والتي يتم صيانتها جيدًا.يوجد أيضًا تنسيق مجمع للبيانات التي يقدمونها، وهناك الكثير من المكتبات المتاحة لقراءة البيانات المجمعة، مثل هذه المكتبات: ZoneInfo (قاعدة بيانات tz / قاعدة بيانات Olson) .NET API

مكتبة المنطقة الزمنية الممتازة هنا: TZ4Net

حسنا، منذ ذلك الحين TimeZoneInfo تم استبعاده، فمن المحتمل أنك لن تجد حلاً في إطار العمل نفسه (لكن لا تقتبس مني ذلك).

في هذه الحالة، هل فكرت في عكس TimeZoneInfo الصف واستخدام ما تجده هناك؟

@دومينيك, ، لقد فكرت في ذلك، لكنني أفضل البقاء قانونيًا، وأنا متأكد تمامًا من أنه يجب تضمين المعلومات في إطار العمل على أي حال، أو الحصول عليها من السجل بطريقة مخادعة لا تتطلب أذونات. .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top