الفرق بين المراجعتين لصفحة: «Python/datetime/tzinfo/dst»
لا ملخص تعديل |
|||
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:التابع <code> | <noinclude>{{DISPLAYTITLE:التابع <code>tzinfo.dst()</code> في بايثون}}</noinclude> | ||
يعيد التابع مقدار التعديل لنظام التوقيت الصيفي (DST). | يعيد التابع مقدار التعديل لنظام التوقيت الصيفي (DST). | ||
سطر 59: | سطر 58: | ||
== مصادر == | == مصادر == | ||
[https://docs.python.org/3/library/datetime.html#datetime. | * [https://docs.python.org/3/library/datetime.html#datetime.tzinfo.dst قسم tzinfo Objects في صفحة Basic date and time types في توثيق بايثون الرسمي.] | ||
[[تصنيف:Python]] | [[تصنيف:Python]] | ||
[[تصنيف:Python Modules]] | [[تصنيف:Python Modules]] | ||
[[تصنيف:Python Methods]] | [[تصنيف:Python Methods]] |
المراجعة الحالية بتاريخ 20:33، 10 يوليو 2018
يعيد التابع مقدار التعديل لنظام التوقيت الصيفي (DST).
البنية العامة
tzinfo.dst(dt)
القيمة المعادة
يعيد التابع مقدار التعديل لنظام التوقيت الصيفي (DST).
يعيد التابع كائن timedelta يمثّل مقدار التعديل لنظام التوقيت الصيفي (DST)، ويعيد القيمة None
إن لم تكن معلومات التوقيت الصيفي معروفة، ويعيد timedelta(0)
إن لم يكن التوقيت الصيفي مفعّلًا. أما لو كان التوقيت الصيفي مفعّلًا، فإنّ التابع يعيد كائن timedelta
(راجع التابع utcoffset()
للمزيد من التفاصيل).
يجب الانتباه إلى أنّ مقدار إزاحة التوقيت الصيفي - إن كان مطبّقًا - مضاف مسبقًا إلى مقدار الإزاحة عن التوقيت العالمي المنسّق والذي يعيده التابع utcoffset()
، لهذا لا حاجة إلى استدعاء التابع dst()
إلا إذا كان المطلوب الحصول على معلومات التوقيت الصيفي على نحو منفصل.
فعلى سبيل المثال يستدعي التابع datetime.timetuple()
التابع dst()
وهو من توابع خاصّيته tzinfo
لتحديد طريقة تعيين قيمة الراية tm_isdst
، ويستدعي التابع tzinfo.fromutc()
التابع dst()
عند الانتقال بين المناطق الزمنية للأخذ بالحسبان التغييرات التي قد تطرأ على التوقيت بسبب نظام التوقيت الصيفي.
يجب أن تكون نسخة الصنف الفرعي للصنف tzinfo
(لنفترض أنها tz
) والتي تمثّل التوقيتين المعياري والصيفي متّسقة ومطابقة للمفهوم التالي:
يجب أن يعيد التعبير: tz.utcoffset(dt) - tz.dst(dt)
النتيجة نفسها لأي كائن datetime
تكون فيه dt.tzinfo == tz
.
يعيد هذا التعبير في الأصناف الفرعية السليمة من tzinfo
مقدار الإزاحة المعياري "standard offset" للمنطقة الزمنية والذي يجب أن لا يعتمد على التاريخ أو الوقت، ولكن على المنطقة الزمنية فقط.
يعتمد التابع datetime.astimezone()
على هذا الأمر، ولكنّه غير قادر على اكتشاف المخالفات، وتقع مسؤولية ذلك على عاتق المبرمج.
إن لم يضمن الصنف الفرعي من tzinfo
ذلك، فقد يكون بمقدوره إعادة تعريف طريقة الاستخدام الافتراضية للتابع tzinfo.fromutc()
ليعمل بصورة صحيحة مع التابع astimezone()
.
يؤدي استخدام التابع dst()
بالطريقة الافتراضية إلى إطلاق الخطأ NotImplementedError
.
ملاحظة: لم يعد مقدار إزاحة التوقيت الصيفي مقصورًا على الأعداد الصحيحة للدقائق.
أمثلة
عادة ما يستخدم التابع dst()
بإحدى الطريقتين التاليتين:
الطريقة الأولى:
def dst(self, dt):
# صنف ذو مقدار إزاحة ثابت: لا يجري حساب DST
return timedelta(0)
الطريقة الثانية:
def dst(self, dt):
# تعيين dston و dstoff لأوقات الانتقال في نظام التوقيت الصيفي
# الخاص بمنطقة زمنية معينة وذلك بالاستناد إلى السنة dt.year
# ويُعرض بالتوقيت المعياري المحلّي.
if dston <= dt.replace(tzinfo=None) < dstoff:
return timedelta(hours=1)
else:
return timedelta(0)
انظر أيضًا
- التابع
datetime.dst()
: يتيح التابع القدرة على تحديد ما إذا كان التوقيت الصيفي مستخدمًا أم لا. - التابع
datetime.astimezone()
: يعيد التابع كائنdatetime
مع خاصيةtzinfo
الممرّرة كمعامل للتابع، ويَجري تعديل بيانات الوقت والتاريخ بحيث تكون النتيجة مشابهة لوقت الكائن نفسه حسب التوقيت العالمي المنسّق، ولكنّ بالتوقيت المحلّي المحدّد بالمعاملtz
.