_تم نقل هذه المشكلة من تذكرة على مجتمع المطورين ._
حاليًا يفتقر DateTimeOffset إلى خيارات تحويلات المنطقة الزمنية ولا يدعم Windows api لـ TimeZoneInfo لـ DateTimeOffset
يؤدي هذا إلى الاضطرار إلى كتابة رمز لتحويل إزاحة التاريخ والوقت إلى وقت التاريخ ثم استخدام TimeZoneInfo للتحويل إلى Datetime جديد ثم العودة إلى DateTimeOffset بحيث يتم الاحتفاظ بالنقطة المقصودة في الوقت والمنطقة الزمنية.
هذه المجموعة من التحويلات بين التنسيقات واستدعاءات API ذات الصلة تخلق احتمال حدوث أخطاء في التحويل قد لا يكون من السهل اكتشافها إذا لم يكن المطور على دراية كاملة بتفاصيل المناطق الزمنية.
أعتقد أنه يتم إنشاء مجموعة جديدة من الأساليب أو مكتبة فئة جديدة توحد معلومات TimeZoneInfo و DateTimeOffset للسماح للمطور بالمطالبة بتحويل مجموعة التاريخ والوقت إلى منطقة زمنية جديدة دون الحاجة إلى الدخول في سلسلة من التحويلات. هذا من شأنه أن يقلل الأخطاء ويجعل استخدام DateTimeOffset أبسط لمعظم المطورين
أيضًا DateTimeOffset ToLocal يفترض أن الخوادم وقت التاريخ / المنطقة الزمنية التي لا تعطي أي خيار للتحويل إلى منطقة زمنية للمستخدمين لتطبيق ما على الويب ، قد يكون العميل في منطقة زمنية مختلفة عن عميل المتصفح.
وقد يحتاج المستعرض إلى رؤية تاريخ لمنطقة زمنية ليسوا فيها.
شكرًا لك على الوقت الذي قضيته في تقديم اقتراحك. سنقوم ببعض الفحوصات الأولية للتأكد من أنه يمكننا المضي قدمًا. سنقدم تحديثًا بمجرد أن يتم فرز المشكلة بواسطة فريق المنتج.
أيضًا DateTimeOffset ToLocal يفترض أن الخوادم وقت التاريخ / المنطقة الزمنية التي لا تعطي أي خيار للتحويل إلى منطقة زمنية للمستخدمين لتطبيق ما على الويب ، قد يكون العميل في منطقة زمنية مختلفة عن عميل المتصفح.
وقد يحتاج المستعرض إلى رؤية تاريخ لمنطقة زمنية ليسوا فيها.
هذه. هذا هو سبب كسر DateTimeKind
. يُظهر Utc
/ Local
/ Unknown
(أو Other
في واجهات برمجة التطبيقات المماثلة) سوء فهم للمجال.
سأكرر أنه يجب علينا توفير واجهة برمجة تطبيقات كاملة وحديثة للتاريخ / الوقت من الطرف الأول ، والتي من شأنها أن تبدو مشابهة لـ java.time و NodaTime.
لاحظ أنه في معظم الحالات ، لا يكون DateTimeOffset
هو أيضًا نوع المجال المناسب ، حيث يتم عادةً تسجيل المعلومات غير المطلقة الفورية بشكل أفضل على أنها DateTimeZoned
(والتي تقوم تلقائيًا بتحديث الإزاحة عند الإضافة في أي وقت).
التعليق الأكثر فائدة
هذه. هذا هو سبب كسر
DateTimeKind
. يُظهرUtc
/Local
/Unknown
(أوOther
في واجهات برمجة التطبيقات المماثلة) سوء فهم للمجال.سأكرر أنه يجب علينا توفير واجهة برمجة تطبيقات كاملة وحديثة للتاريخ / الوقت من الطرف الأول ، والتي من شأنها أن تبدو مشابهة لـ java.time و NodaTime.
لاحظ أنه في معظم الحالات ، لا يكون
DateTimeOffset
هو أيضًا نوع المجال المناسب ، حيث يتم عادةً تسجيل المعلومات غير المطلقة الفورية بشكل أفضل على أنهاDateTimeZoned
(والتي تقوم تلقائيًا بتحديث الإزاحة عند الإضافة في أي وقت).