Runtime: المناطق الزمنية و DateTimeOffset

تم إنشاؤها على ٢٧ نوفمبر ٢٠١٩  ·  1تعليق  ·  مصدر: dotnet/runtime

_تم نقل هذه المشكلة من تذكرة على مجتمع المطورين ._


حاليًا يفتقر DateTimeOffset إلى خيارات تحويلات المنطقة الزمنية ولا يدعم Windows api لـ TimeZoneInfo لـ DateTimeOffset

يؤدي هذا إلى الاضطرار إلى كتابة رمز لتحويل إزاحة التاريخ والوقت إلى وقت التاريخ ثم استخدام TimeZoneInfo للتحويل إلى Datetime جديد ثم العودة إلى DateTimeOffset بحيث يتم الاحتفاظ بالنقطة المقصودة في الوقت والمنطقة الزمنية.

هذه المجموعة من التحويلات بين التنسيقات واستدعاءات API ذات الصلة تخلق احتمال حدوث أخطاء في التحويل قد لا يكون من السهل اكتشافها إذا لم يكن المطور على دراية كاملة بتفاصيل المناطق الزمنية.

أعتقد أنه يتم إنشاء مجموعة جديدة من الأساليب أو مكتبة فئة جديدة توحد معلومات TimeZoneInfo و DateTimeOffset للسماح للمطور بالمطالبة بتحويل مجموعة التاريخ والوقت إلى منطقة زمنية جديدة دون الحاجة إلى الدخول في سلسلة من التحويلات. هذا من شأنه أن يقلل الأخطاء ويجعل استخدام DateTimeOffset أبسط لمعظم المطورين


التعليقات الأصلية

Denny Figuerres في 15/3/2019 الساعة 08:16 صباحًا:

أيضًا DateTimeOffset ToLocal يفترض أن الخوادم وقت التاريخ / المنطقة الزمنية التي لا تعطي أي خيار للتحويل إلى منطقة زمنية للمستخدمين لتطبيق ما على الويب ، قد يكون العميل في منطقة زمنية مختلفة عن عميل المتصفح.

وقد يحتاج المستعرض إلى رؤية تاريخ لمنطقة زمنية ليسوا فيها.

Jane Wu [MSFT] في 18/3/2019 ، 01:36 صباحًا:

شكرًا لك على الوقت الذي قضيته في تقديم اقتراحك. سنقوم ببعض الفحوصات الأولية للتأكد من أنه يمكننا المضي قدمًا. سنقدم تحديثًا بمجرد أن يتم فرز المشكلة بواسطة فريق المنتج.

api-needs-work api-suggestion area-System.Runtime

التعليق الأكثر فائدة

أيضًا DateTimeOffset ToLocal يفترض أن الخوادم وقت التاريخ / المنطقة الزمنية التي لا تعطي أي خيار للتحويل إلى منطقة زمنية للمستخدمين لتطبيق ما على الويب ، قد يكون العميل في منطقة زمنية مختلفة عن عميل المتصفح.

وقد يحتاج المستعرض إلى رؤية تاريخ لمنطقة زمنية ليسوا فيها.

هذه. هذا هو سبب كسر DateTimeKind . يُظهر Utc / Local / Unknown (أو Other في واجهات برمجة التطبيقات المماثلة) سوء فهم للمجال.

سأكرر أنه يجب علينا توفير واجهة برمجة تطبيقات كاملة وحديثة للتاريخ / الوقت من الطرف الأول ، والتي من شأنها أن تبدو مشابهة لـ java.time و NodaTime.
لاحظ أنه في معظم الحالات ، لا يكون DateTimeOffset هو أيضًا نوع المجال المناسب ، حيث يتم عادةً تسجيل المعلومات غير المطلقة الفورية بشكل أفضل على أنها DateTimeZoned (والتي تقوم تلقائيًا بتحديث الإزاحة عند الإضافة في أي وقت).

>كل التعليقات

أيضًا DateTimeOffset ToLocal يفترض أن الخوادم وقت التاريخ / المنطقة الزمنية التي لا تعطي أي خيار للتحويل إلى منطقة زمنية للمستخدمين لتطبيق ما على الويب ، قد يكون العميل في منطقة زمنية مختلفة عن عميل المتصفح.

وقد يحتاج المستعرض إلى رؤية تاريخ لمنطقة زمنية ليسوا فيها.

هذه. هذا هو سبب كسر DateTimeKind . يُظهر Utc / Local / Unknown (أو Other في واجهات برمجة التطبيقات المماثلة) سوء فهم للمجال.

سأكرر أنه يجب علينا توفير واجهة برمجة تطبيقات كاملة وحديثة للتاريخ / الوقت من الطرف الأول ، والتي من شأنها أن تبدو مشابهة لـ java.time و NodaTime.
لاحظ أنه في معظم الحالات ، لا يكون DateTimeOffset هو أيضًا نوع المجال المناسب ، حيث يتم عادةً تسجيل المعلومات غير المطلقة الفورية بشكل أفضل على أنها DateTimeZoned (والتي تقوم تلقائيًا بتحديث الإزاحة عند الإضافة في أي وقت).

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

matty-hall picture matty-hall  ·  3تعليقات

aggieben picture aggieben  ·  3تعليقات

btecu picture btecu  ·  3تعليقات

iCodeWebApps picture iCodeWebApps  ·  3تعليقات

GitAntoinee picture GitAntoinee  ·  3تعليقات