الفرق بين المراجعتين لصفحة: «Python/datetime/tzinfo/fromutc»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>datetime.time()</code> في بايثون}}</noinclude> يستدعى هذا التابع عند استخدام التاب...' |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:التابع <code>datetime.time()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:التابع <code>datetime.time()</code> في بايثون}}</noinclude> | ||
يستدعى هذا التابع عند استخدام التابع datetime.astimezone() بالطريقة الافتراضية. وعند استدعائه من هناك، يكون dt.tzinfo هو الكائن نفسه | يستدعى هذا التابع عند استخدام التابع <code>datetime.astimezone()</code> بالطريقة الافتراضية. وعند استدعائه من هناك، يكون <code>[[Python/datetime/tzinfo|dt.tzinfo]]</code> هو الكائن نفسه <code>self</code>، ويُنظر إلى بيانات التاريخ والوقت في الكائن <code>dt</code> على أنّها تعرض الوقت حسب التوقيت العالمي المنسّق. | ||
== البنية العامة == | == البنية العامة == | ||
سطر 9: | سطر 9: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
الهدف من التابع formutc() هو تعديل بيانات الوقت والتاريخ وإعادة كائن datetime مكافئ حسب التوقيت المحليّ للكائن نفسه self. | الهدف من التابع <code>formutc()</code> هو تعديل بيانات الوقت والتاريخ وإعادة كائن <code>datetime</code> مكافئ حسب التوقيت المحليّ للكائن نفسه <code>self</code>. | ||
يجب على الأصناف الفرعية من tzinfo أن تكون قادرةً على وراثة طريقة الاستخدام الافتراضية للتابع fromutc() دون أي مشاكل، وذلك لأنّ هذا التابع قادرٌ على التعامل مع حالات مثل المناطق الزمنية ذات مقدار الإزاحة الثابتة، والمناطق الزمنية التي تعتمد التوقيتين المعياري والصيفي، أو التوقيت الصيفي حتى عندما تكون أوقات الانتقال في النظام الصيفي مختلفة من سنة إلى أخرى. | يجب على الأصناف الفرعية من <code>tzinfo</code> أن تكون قادرةً على وراثة طريقة الاستخدام الافتراضية للتابع <code>fromutc()</code> دون أي مشاكل، وذلك لأنّ هذا التابع قادرٌ على التعامل مع حالات مثل المناطق الزمنية ذات مقدار الإزاحة الثابتة، والمناطق الزمنية التي تعتمد التوقيتين المعياري والصيفي، أو التوقيت الصيفي حتى عندما تكون أوقات الانتقال في النظام الصيفي مختلفة من سنة إلى أخرى. | ||
ولكن قد لا يمكن للطريقة الافتراضية في استخدام التابع fromutc() أن تتعامل مع بعض الحالات على نحو صحيح، فمثلًا عندما لا يعتمد مقدار الإزاحة المعياري عن التوقيت العالمي المنسّق على تاريخ أو وقت معين، وهو أمر قد يحدث لأسباب سياسية. ما يحدث هنا هو | ولكن قد لا يمكن للطريقة الافتراضية في استخدام التابع <code>fromutc()</code> أن تتعامل مع بعض الحالات على نحو صحيح، فمثلًا عندما لا يعتمد مقدار الإزاحة المعياري عن التوقيت العالمي المنسّق على تاريخ أو وقت معين، وهو أمر قد يحدث لأسباب سياسية. ما يحدث هنا هو أنّه قد لا تعطي الطريقة الافتراضية لاستخدام التابعين <code>[[Python/datetime/datetime/astimezone|astimezone()]]</code> و <code>fromutc()</code> النتائج المطلوبة إن كانت النتيجة هي ساعة تكون ضمن اللحظة التي يحدث بها تغير في مقدار الإزاحة المعياري. | ||
== أمثلة == | == أمثلة == | ||
لو تجاوزنا الحالات التي تنشأ عنها الأخطاء فإنّ الطريقة الافتراضية لاستخدام التابع fromutc() هي: | لو تجاوزنا الحالات التي تنشأ عنها الأخطاء فإنّ الطريقة الافتراضية لاستخدام التابع <code>fromutc()</code> هي: | ||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
سطر 39: | سطر 39: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* التابع <code>[[Python/datetime/tzinfo/dst|tzinfo.dst()]]</code>: يعيد التابع مقدار التعديل لنظام التوقيت الصيفي (DST). | |||
* التابع <code>[[Python/datetime/datetime/astimezone|datetime.astimezone()]]</code>: يعيد التابع كائن <code>datetime</code> مع خاصية <code>tzinfo</code> الممرّرة كمعامل للتابع، ويَجري تعديل بيانات الوقت والتاريخ بحيث تكون النتيجة مشابهة لوقت الكائن نفسه حسب التوقيت العالمي المنسّق، ولكنّ بالتوقيت المحلّي المحدّد بالمعامل <code>tz</code>. | |||
== مصادر == | == مصادر == |
المراجعة الحالية بتاريخ 20:31، 10 يوليو 2018
يستدعى هذا التابع عند استخدام التابع datetime.astimezone()
بالطريقة الافتراضية. وعند استدعائه من هناك، يكون dt.tzinfo
هو الكائن نفسه self
، ويُنظر إلى بيانات التاريخ والوقت في الكائن dt
على أنّها تعرض الوقت حسب التوقيت العالمي المنسّق.
البنية العامة
tzinfo.fromutc(dt)
الهدف من التابع formutc()
هو تعديل بيانات الوقت والتاريخ وإعادة كائن datetime
مكافئ حسب التوقيت المحليّ للكائن نفسه self
.
يجب على الأصناف الفرعية من tzinfo
أن تكون قادرةً على وراثة طريقة الاستخدام الافتراضية للتابع fromutc()
دون أي مشاكل، وذلك لأنّ هذا التابع قادرٌ على التعامل مع حالات مثل المناطق الزمنية ذات مقدار الإزاحة الثابتة، والمناطق الزمنية التي تعتمد التوقيتين المعياري والصيفي، أو التوقيت الصيفي حتى عندما تكون أوقات الانتقال في النظام الصيفي مختلفة من سنة إلى أخرى.
ولكن قد لا يمكن للطريقة الافتراضية في استخدام التابع fromutc()
أن تتعامل مع بعض الحالات على نحو صحيح، فمثلًا عندما لا يعتمد مقدار الإزاحة المعياري عن التوقيت العالمي المنسّق على تاريخ أو وقت معين، وهو أمر قد يحدث لأسباب سياسية. ما يحدث هنا هو أنّه قد لا تعطي الطريقة الافتراضية لاستخدام التابعين astimezone()
و fromutc()
النتائج المطلوبة إن كانت النتيجة هي ساعة تكون ضمن اللحظة التي يحدث بها تغير في مقدار الإزاحة المعياري.
أمثلة
لو تجاوزنا الحالات التي تنشأ عنها الأخطاء فإنّ الطريقة الافتراضية لاستخدام التابع fromutc()
هي:
def fromutc(self, dt):
# يطلق الخطأ ValueError إن لم يكن dt.tzinfo هو self
dtoff = dt.utcoffset()
dtdst = dt.dst()
# يطلق الخطأ ValueError إن لم يكن dtoff هو None أو لم يكن dtdst هو None
delta = dtoff - dtdst # هذا هو مقدار الإزاحة المعياري للكائن نفسه
if delta:
dt += delta # التحويل إلى التوقيت المحلي المعياري
dtdst = dt.dst()
# يطلق الخطأ ValueError إن كان dtdst يحمل القيمة None
if dtdst:
return dt + dtdst
else:
return dt
انظر أيضًا
- التابع
tzinfo.dst()
: يعيد التابع مقدار التعديل لنظام التوقيت الصيفي (DST).
- التابع
datetime.astimezone()
: يعيد التابع كائنdatetime
مع خاصيةtzinfo
الممرّرة كمعامل للتابع، ويَجري تعديل بيانات الوقت والتاريخ بحيث تكون النتيجة مشابهة لوقت الكائن نفسه حسب التوقيت العالمي المنسّق، ولكنّ بالتوقيت المحلّي المحدّد بالمعاملtz
.
مصادر
قسم tzinfo Objects في صفحة Basic date and time types في توثيق بايثون الرسمي.