الفرق بين المراجعتين ل"Python/datetime/datetime/isoformat"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>datetime.datetime.isoformat()‎</code> في بايثون}}</noinclude> يعيد التابع Python/str|سلسلة نص...')
 
 
(مراجعتان متوسطتان بواسطة نفس المستخدم غير معروضتين)
سطر 6: سطر 6:
  
 
<syntaxhighlight lang="python3">
 
<syntaxhighlight lang="python3">
‎datetime.isoformat()
+
isoformat(sep='T', timespec='auto')
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
== المعاملات ==
 +
 +
=== <code>sep</code> ===
 +
معامل اختياري يأخذ القيمة الافتراضية <code>'T'</code> ويمثّل فاصلًا يتكوّن من حرف واحد يوضع بين جزئي الوقت والتاريخ في النتيجة المعادة.
 +
 +
===<code>timespec</code>===
 +
يحدّد المعامل الاختياري <code>timespec</code> عدد المكوّنات الإضافية التي سيتضمّنها كائن الوقت (القيمة الافتراضية هي <code>'auto'</code>)، ويمكن للمكونات أن تكون واحدة ممّا يلي:
 +
*<code>'auto'</code>: مشابه للمكون <code>'second'</code> إن كانت أجزاء الثانية مساوية للصفر، وإلا فإنّه مشابه للمكوّن <code>'microseconds'</code>.
 +
*<code>'hours'</code>: تضمين الساعة بهيئة رقمين <code>HH</code>.
 +
*<code>'minutes'</code>: تضمين الساعة والدقيقة بالصيغة <code>HH:MM</code>.
 +
*<code>'seconds'</code>: تضمين الساعة والدقيقة والثانية بالصيغة <code>HH:MM:SS</code>.
 +
*<code>'milliseconds'</code>: تضمين الوقت كاملًا، مع اقتطاع قيم الثانية الكسرية إلى أجزاء من الثانية، بالصيغة <code>HH:MM:SS.sss</code>.
 +
*<code>'microseconds'</code>: عرض الوقت كاملًا بالصيغة <code>HH:MM:SS.mmmmmm</code>.
 +
'''ملاحظة''': تُقتطع مكوّنات الوقت المستثناة ولا تقرّب.
 +
 +
'''ملاحظة''': أضيف المعامل <code>timespec</code> في الإصدار 3.6 من اللغة.
 +
 +
تطلق اللغة الخطأ <code>ValueError</code> في حال استخدام معامل <code>timesepc</code> غير صالح.
 
== القيمة المعادة ==
 
== القيمة المعادة ==
  
يعيد التابع [[Python/str|سلسلة نصية]] تمثّل التاريخ بصيغة ISO 8601 وهي <code>'YYYY-MM-DD'</code>.
+
يعيد التابع [[Python/str|سلسلة نصية]] تمثّل التاريخ بصيغة ISO 8601 هي <code>YYYY-MM-DDTHH:MM:SS.mmmmmm</code> في حال تضمّن كائن <code>datetime</code> أجزاء الثانية، والصيغة <code>YYYY-MM-DDTHH:MM:SS</code> إن كانت قيمة أجزاء الثانية مساوية للصفر.
 +
 
 +
إن لم يعد التابع <code>utcoffset()</code>‎ القيمة <code>None</code>، فإنّ التابع يُلحق بالسلسلة النصية المعادة سلسلة نصية أخرى ذات ستة أحرف، تتضمّن مقدار الإزاحة عن التوقيت العالمي المنسّق بالساعات والدقائق (مع إضافة إشارة سالب أو موجب للإشارة إلى التقدم أو التأخر عن هذا التوقيت)، لتصبح النتيجة المعادة بالصيغة: <code>YYYY-MM-DDTHH:MM:SS.mmmmmm+HH:MM</code>، أو إن كانت قيمة أجزاء الثانية صفرًا، فتكون النتيجة المعادة بالصيغة <code>YYYY-MM-DDTHH:MM:SS+HH:MM</code>. 
  
 
== أمثلة ==
 
== أمثلة ==
سطر 21: سطر 41:
 
>>> dt = datetime(2018, 6, 27, 20, 58)
 
>>> dt = datetime(2018, 6, 27, 20, 58)
 
>>> dt.isoformat()
 
>>> dt.isoformat()
'2018-06-27'
+
'2018-06-27T20:58:00'
 +
>>> dt = datetime(2290, 12, 8, 11, 23, 9, 4939)
 +
>>> dt.isoformat()
 +
'2290-12-08T11:23:09.004939'
 +
>>> dt.isoformat(sep="#")
 +
'2290-12-08#11:23:09.004939'
 +
>>> dt.isoformat(timespec="minutes")
 +
'2290-12-08T11:23'
 +
>>> dt.isoformat(timespec="milliseconds")
 +
'2290-12-08T11:23:09.004'
 +
>>> dt.isoformat(timespec="hours")
 +
'2290-12-08T11'
 +
</syntaxhighlight>أما المثال التالي فيعرض النتيجة المعادة بعد استخدام التابع<code>utcoffset()</code>‎:<syntaxhighlight lang="python3">
 +
>>> from datetime import tzinfo, timedelta, datetime
 +
>>> class TZ(tzinfo):
 +
...    def utcoffset(self, dt): return timedelta(minutes=-399)
 +
...
 +
>>> datetime(2002, 12, 25, tzinfo=TZ()).isoformat(' ')
 +
'2002-12-25 00:00:00-06:39'
 
</syntaxhighlight>
 
</syntaxhighlight>
  
سطر 29: سطر 67:
  
 
== مصادر ==
 
== مصادر ==
[https://docs.python.org/3/library/datetime.html#datetime.datetime.isoformat قسم date Objects في صفحة Basic date and time types في توثيق بايثون الرسمي.]
+
[https://docs.python.org/3/library/datetime.html#datetime.datetime.isoformat قسم datetime Objects في صفحة Basic date and time types في توثيق بايثون الرسمي.]
  
 
[[تصنيف:Python]]
 
[[تصنيف:Python]]
 
[[تصنيف:Python Modules]]
 
[[تصنيف:Python Modules]]
 
[[تصنيف:Python Methods]]
 
[[تصنيف:Python Methods]]

المراجعة الحالية بتاريخ 19:40، 8 يوليو 2018


يعيد التابع سلسلة نصية تمثّل التاريخ بصيغة ISO 8601.

البنية العامة

isoformat(sep='T', timespec='auto')

المعاملات

sep

معامل اختياري يأخذ القيمة الافتراضية 'T' ويمثّل فاصلًا يتكوّن من حرف واحد يوضع بين جزئي الوقت والتاريخ في النتيجة المعادة.

timespec

يحدّد المعامل الاختياري timespec عدد المكوّنات الإضافية التي سيتضمّنها كائن الوقت (القيمة الافتراضية هي 'auto')، ويمكن للمكونات أن تكون واحدة ممّا يلي:

  • 'auto': مشابه للمكون 'second' إن كانت أجزاء الثانية مساوية للصفر، وإلا فإنّه مشابه للمكوّن 'microseconds'.
  • 'hours': تضمين الساعة بهيئة رقمين HH.
  • 'minutes': تضمين الساعة والدقيقة بالصيغة HH:MM.
  • 'seconds': تضمين الساعة والدقيقة والثانية بالصيغة HH:MM:SS.
  • 'milliseconds': تضمين الوقت كاملًا، مع اقتطاع قيم الثانية الكسرية إلى أجزاء من الثانية، بالصيغة HH:MM:SS.sss.
  • 'microseconds': عرض الوقت كاملًا بالصيغة HH:MM:SS.mmmmmm.

ملاحظة: تُقتطع مكوّنات الوقت المستثناة ولا تقرّب.

ملاحظة: أضيف المعامل timespec في الإصدار 3.6 من اللغة.

تطلق اللغة الخطأ ValueError في حال استخدام معامل timesepc غير صالح.

القيمة المعادة

يعيد التابع سلسلة نصية تمثّل التاريخ بصيغة ISO 8601 هي YYYY-MM-DDTHH:MM:SS.mmmmmm في حال تضمّن كائن datetime أجزاء الثانية، والصيغة YYYY-MM-DDTHH:MM:SS إن كانت قيمة أجزاء الثانية مساوية للصفر.

إن لم يعد التابع utcoffset()‎ القيمة None، فإنّ التابع يُلحق بالسلسلة النصية المعادة سلسلة نصية أخرى ذات ستة أحرف، تتضمّن مقدار الإزاحة عن التوقيت العالمي المنسّق بالساعات والدقائق (مع إضافة إشارة سالب أو موجب للإشارة إلى التقدم أو التأخر عن هذا التوقيت)، لتصبح النتيجة المعادة بالصيغة: YYYY-MM-DDTHH:MM:SS.mmmmmm+HH:MM، أو إن كانت قيمة أجزاء الثانية صفرًا، فتكون النتيجة المعادة بالصيغة YYYY-MM-DDTHH:MM:SS+HH:MM

أمثلة

يبين المثال التالي آلية عمل التابع:

>>> from datetime import datetime
>>> dt = datetime(2018, 6, 27, 20, 58)
>>> dt.isoformat()
'2018-06-27T20:58:00'
>>> dt = datetime(2290, 12, 8, 11, 23, 9, 4939)
>>> dt.isoformat()
'2290-12-08T11:23:09.004939'
>>> dt.isoformat(sep="#")
'2290-12-08#11:23:09.004939'
>>> dt.isoformat(timespec="minutes")
'2290-12-08T11:23'
>>> dt.isoformat(timespec="milliseconds")
'2290-12-08T11:23:09.004'
>>> dt.isoformat(timespec="hours")
'2290-12-08T11'

أما المثال التالي فيعرض النتيجة المعادة بعد استخدام التابعutcoffset()‎:

>>> from datetime import tzinfo, timedelta, datetime
>>> class TZ(tzinfo):
...     def utcoffset(self, dt): return timedelta(minutes=-399)
...
>>> datetime(2002, 12, 25, tzinfo=TZ()).isoformat(' ')
'2002-12-25 00:00:00-06:39'

انظر أيضًا

  • التابع datetime.isocalendar()‎: يعيد التابع صفًّا يضمّ ثلاثة عناصر هي (ISO year, ISO week number, ISO weekday).
  • التابع datetime.isoweekday()‎: يعيد التابع اليوم في الأسبوع على هيئة عدد صحيح، حيث يأخذ يوم الاثنين الرقم 0 ويوم الأحد الرقم 6.

مصادر

قسم datetime Objects في صفحة Basic date and time types في توثيق بايثون الرسمي.