صفحة الصنف Time
في روبي
الصنف Time
هو تجريد لمفهومي التاريخ والوقت. يتم تخزين Time
داخليا كعدد الثواني (مع كسور) منذ
عصر
1 يناير 1970 00:00 بالتوقيت العالمي. انظر أيضا الوحدة Date. يعامل الصنفTime
توقيت جرينتش (GMT) Time
و التوقيت العالمي الموحد (UTC)(UTC Time
) على أنه متكافئان. توقيت جرينتش هو الطريقة الأقدم للإشارة إلى هذه الأوقات المرجعية، ولكنها لا تزال موجودة في أسماء الاستدعاءات على أنظمة POSIX.
يمكن أن يكون لجميع الأوقات كسور. انتبه لهذا الأمر عند مقارنة الأوقات مع بعضها البعض - فالأوقات التي تبدو متساوية عند عرضها، قد تكون مختلفة عند المقارنة.
منذ روبي 1.9.2، يستخدم تطبيق اTime
عددا صحيحا من النوع signed 63 bit أو Bignum أو Rational
. العدد الصحيح يمثل عدد النانوثواني منذ
عصر
والتي يمكن أن تمثل 1823-11-12 إلى 2116-02-20. عند استخدام Bignum أو Rational
(قبل 1823، وبعد 2116 ، بالنانوثانية) ، يعمل الصنف Time
بشكل أبطأ مقارنة باستخدام عدد صحيح.
تم تنفيذ كل الأمثلة الموجودة في صفحات التوابع باستخدام المنطقة الزمنية EST بتوقيت جرينتش -5.
يمكنك إنشاء توقيت جديد (نسخة من Time
) عبر التابع ::new
. حيث سيستخدم الوقت الحالي في النظام. ::now
هو مرادف للمتغير this. يمكنك أيضًا تمرير أجزاء من الوقت إلى ::new
، مثل السنة والشهر والدقيقة وما إلى ذلك. عندما تريد إنشاء توقيت بهذا التابع، فيجب أن تمرر السنة على الأقل. إذا مررت السنة وحدها، فسيتم تعيين الوقت الافتراضي عند فاتح كانون الثاني/يناير من ذلك العام على الساعة 00:00:00 بتوقيت المنطقة الزمنية الحالية للنظام إليك بعض الأمثلة:
Time.new(2002) #=> 2002-01-01 00:00:00 -0500
Time.new(2002, 10) #=> 2002-10-01 00:00:00 -0500
Time.new(2002, 10, 31) #=> 2002-10-31 00:00:00 -0500
Time.new(2002, 10, 31, 2, 2, 2, "+02:00") #=> 2002-10-31 02:02:02 +0200
يمكنك أيضًا استخدام gm و local و utc
لاعتماد المناطق الزمنية غرينتش والتوقيت المحلي والتوقيت العالمي بدلاً من استخدام إعدادات النظام الحالي.
يمكنك أيضًا إنشاء توقيت جديد باستخدام ::at
، والذي تأخذ عدد الثواني (أو أعشار الثواني) منذ Unix Epoch
.
Time.at(628232400) #=> 1989-11-28 00:00:00 -0500
العمل مع التوقيتات (نسخ Time
)
¶
↑
بمجرد أن يكون لديك توقيت (نسخة من Time
)، هناك العديد من الأشياء التي يمكنك القيام بها. فيما يلي بعض الأمثلة. في جميع الأمثلة التالية، سنفترض أنك قمت بما يلي:
t = Time.new(1993, 02, 24, 12, 0, 0, "+09:00")
هل t يتوافق مع يوم الاثنين؟
t.monday? #=> false
أي عام هو هذا؟
t.year #=> 1993
kkهل t توقيت صيفي؟
t.dst? #=> false
ما هو اليوم بعد عام من t؟
t + (60*60*24*365) #=> 1994-02-24 12:00:00 +0900
كم عدد الثواني منذ حقبة يونيكس وحتى t؟
t.to_i #=> 730522800
يمكنك أيضا القيام بالعمليات والوظائف العادية، مثل مقارنة توقيتين.
t1 = Time.new(2010)
t2 = Time.new(2011)
t1 == t2 #=> false
t1 == t1 #=> true
t1 < t2 #=> true
t1 > t2 #=> false
Time.new(2010,10,31).between?(t1, t2) #=> true
توابع الصنف العامة (Public Class Methods)
التابع at
ينشئ التابع at
توقيتا جديدًا Time
مع القيم المعطاة من قِبل time
(انظر فقرة البنية العامة)، أو عدد الثواني seconds_with_frac
، أو عدد الثواني seconds
والكسور microseconds_with_frac
منذ حقبة يونيكس. يمكن أن يكون الوسيطان seconds_with_frac
و microseconds_with_frac
من النوع Integer
أو Float
أو Rational
أو غيرها من الأصناف العددية (Numeric
). تتيح الميزة غير المحمولة أن يكون الموضع (offset) سالبًا في بعض الأنظمة.
التابع gm
ينشئ التابع gm
توقيتا Time
استنادًا إلى القيم المعطاة، ويتم تفسيرها على أنها UTC (GMT). يجب تحديد السنة. القيم الأخرى تساوي افتراضيا الحد الأدنى لقيمة هذا الحقل (وقد تكون nil
أو قد تُحذف). يمكن تحديد الشهر بعدد من 1 إلى 12، أو بأسماء الشهور الإنجليزية المكونة من ثلاثة أحرف. يتم تحديد الساعات من المجال (0..23). سيُطلق استثناء ArgumentError
إذا كانت أي من تلك القيم خارج النطاق. سيقبل التابع أيضًا عشر وسائط في الطلب المُخرج من #to_a
.
التابع local
التابع local
مشابه لـ ::gm
، ولكنه يفسر القيم في إطار المنطقة الزمنية المحلية.
التابع mktime
التابع mktime
مشابه لـ ::gm
، ولكنه يفسر القيم في إطار المنطقة الزمنية المحلية. المنطقة الزمنية المحلية.
التابع new
يعيد التابع new
توقيتا جديدا Time
.
التابع now
يُنشئ التابع now
توقيتا Time
جديدا للوقت الحالي. هذا مثل استدعاء التابع ::new
X دون وسائط.
التابع utc
ينشئ التابع utc
توقيتا Time
استنادًا إلى القيم المعطاة، ويتم تفسيره على أنه التوقيت العالمي الموحد UTC (GMT). يجب تحديد السنة. القيم الأخرى تُضبط افتراضيا عند الحد الأدنى لقيمة هذا الحقل (وقد تساوي nil
، أو تُحذف). يمكن تحديد الأشهر بإعداد من 1 إلى 12، أو بثلاثة أحرف تمثل أسماء الشهور بالإنجليزية. يتم تحديد ساعات بعدد من (0..23). يطلق استثناء ArgumentError
إذا كانت أي من تلك القيم خارج النطاق. سيقبل التابع أيضًا عشر وسائط في إخراج الطلب بواسطة #to_a
.
التابع +
معامل الإضافة - يضيف بعض الثواني (ربما كسرية) إلى التوقيت time
ويُعيد تلك القيمة توقيتات Time
جديد.
التابع -
معامل الفرق - يُعيد فرق الثواني على شكل توقيت Float
بين time
و other_time
، أو يطرح numeric
ثانية من time
.
التابع <=>
معامل الموازنة - يقارن time
مع other_time
(انظر فقرة البنية العامة).
التابع asctime
يُعيد التابع asctime
تمثيلا نصيا قانونيا للتوقيت time
.
التابع ctime
يُعيد التابع ctime
تمثيلا نصيا قانونيا للتوقيت time
.
التابع day
يستخلص التابع day
من التوقيت رقم اليوم من الشهر (1..n) لـ time
.
التابع dst?
يُعيد التابع dst?
القيمة true
إن وقع time
أثناء التوقيت الصيفي Time
في المنطقة الزمنية الخاصة به.
التابع eql?
يُعيد true
إذا كان كل من time
و other_time
(انظر فقرة البنية العامة) توقيت Time
، وكان لهما نفس عدد الثواني وكسور الثواني.
التابع friday?
يُعيد التابع friday?
القيمة true
إن كان التوقيت time
يمثل يوم الجمعة.
التابع getgm
يُعيد التابع getgm
توقيتا Time
جديدا يمثل التوقيت الذي استُدعي معه time
بالتوقيت العالمي الموحد (UTC).
التابع getlocal
يُعيد التابع getlocal
توقيتا Time
جديدا يمثل التوقيت الذي استُدعي معه time
بالتوقيت المحلي (باستخدام المنطقة الزمنية المحلية السارية لهذه العملية).
التابع getutc
يُعيد التابع getutc
توقيتا Time
جديدا يمثل التوقيت الذي استُدعي معه time
بالتوقيت العالمي الموحد (UTC).
التابع gmt?
يُعيد التابع gmt?
القيمة true
إن كان التوقيت time
يمثل وقتا وفق UTC (GMT).
التابع gmt_offset
يُعيد التابع gmt_offset
فرق الثواني بين المنطقة الزمنية للتوقيت time
و UTC.
التابع gmtime
يحول التابع gmtime
التوقيت time
إلى التوقيت UTC (GMT) ، مع تعديل المتلقي (receiver).
التابع gmtoff
يُعيد التابع gmtoff
فرق الثواني بين المنطقة الزمنية للتوقيت time
و التوقيت العالمي الموحد (UTC).
التابع hash
يُعيدرمز تجزئة (hash code) للتوقيت Time
.
التابع hour
يُستخلص التابع hour
من التوقيت رقم الساعة من اليوم (0..23) لـ time
.
التابع inspect
يُعيد التابع inspect
سلسلة نصية تمثل التوقيت time
. هذا التابع مكافئ لاستدعاء التابع strftime
مع سلسلة التنسيق المناسبة.
التابع isdst
يُعيد التابع isdst
القيمة true
إن وقع التوقيت time
أثناء التوقيت الصيفيTime
في المنطقة الزمنية الخاصة به.
التابع localtime
يحول التابع localtime
التوقيت time
إلى التوقيت المحلي (باستخدام المنطقة الزمنية المحلية السارية لهذه العملية) مع تعديل المستقبِل (receiver).
التابع mday
يستخلص التابع mday
من التوقيت رقم اليوم من الشهر (1..n) لـ time
.
التابع min
يستخلص التابع min
من التوقيت رقم الدقيقة من الساعة (0..59) لـ time
.
التابع mon
يستخلص التابع mon
من التوقيت رقم الشهر من السنة (1..12) لـ time
.
التابع monday?
يُعيد التابع monday?
القيمة true
إن كان التوقيت time
يمثل يوم الاثنين.
التابع month
يستخلص التابع month
من التوقيت رقم الشهر من السنة (1..12) لـ time
.
التابع nsec
يُعيد التابع nsec
عدد النانوثواني المقابل للتوقيت time
.
التابع round
يُقرّب التابع round
الثواني الفرعية وفق دقة معينة من المنازل العشرية (0 هو القيمة الافتراضية). تقوم بيُعيد التابع round
توقيتا Time
جديدًا. يجب أن يكون الوسيط ndigits
(انظر فقرة البنية العامة) 0 أو عددًا صحيحًا أو موجبًا.
التابع saturday?
يُعيد التابع saturday?
القيمة true
إن كان التوقيت time
يمثل يوم السبت.
التابع sec
يستخلص التابع sec
من التوقيت رقم الثانية في الدقيقة (0..60) لـ time
.
التابع strftime
يُنسق التابع strftime
التوقيت time
وفقًا للموجّهات (directives) الموجودة في سلسلة التنسيق المعطاة.
التابع subsec
يُعيد التابع subsec
الجزء العشري من التوقيت لـ time
.
التابع succ
يُعيد التابع succ
توقيتا Time
جديدًا، مع إضافة ثانية واحدة على التوقيت الذي استُدعي معه time
. التابع #succ
صار متجاوزا منذ روبي 1.9.2 بالنسبة للتوقيتات الكسرية.
التابع sunday?
يُعيد التابع sunday?
القيمة true
إن كان التوقيت time
يمثل يوم الأحد.
التابع thursday?
يُعيد التابع thursday?
القيمة true
إن كان التوقيت time
يمثل يوم الخميس.
التابع to_a
يُعيد التابع to_a
مصفوفة عشارية تضم قيم التوقيت array
للـ time
X:
التابع to_f
يُعيد التابع to_f
قيمة التوقيت time
كعدد عشري من الثواني منذ حقبة يونيكس.
التابع to_i
يُعيد التابع to_i
قيمة التوقيت time
كعدد صحيح يمثل الثواني التي مرت منذ حقبة يونيكس.
التابع to_r
يُعيد التابع to_r
قيمة التوقيت time
كعدد جذري يمثل عدد الثواني التي مرت منذ حقبة يونيكس.
التابع to_s
يُعيد التابع to_s
سلسلة نصية تمثل التوقيت time
. وهو مكافئ لاستدعاء التابع strftime
مع سلسلة التنسيق المناسبة.
التابع tuesday?
يُعيد التابع tuesday?
القيمة true
إن كان التوقيت time
يمثل يوم الثلاثاء.
التابع tv_nsec
يُعيد التابع tv_nsec
عدد النانوثواني المقابلة للتوقيت time
.
التابع tv_sec
يُعيد التابع tv_sec
قيمة التوقيت time
كعدد صحيح يمثل عدد الثواني التي مرت منذ حقبة يونيكس.
التابع tv_usec
يُعيد التابع tv_usec
عدد الميكروثواني المقابلة للتوقيت time
.
التابع usec
يُعيد التابع usec
عدد الميكروثواني المقابل للتوقيت time
.
التابع utc
<a href="#method-i-utc-3F"> </a>
التابع utc?
يُعيد التابع utc?
القيمة true
إن كان التوقيت time
يمثل يوم نظاق توقيت في التوقيت العالمي الموحد UTC (GMT).
التابع utc_offset
يُعيد التابع utc_offset
فرق الثواني بين المنطقة الزمنية للتوقيت time
والتوقيت العالمي الموحد UTC.
التابع wday
يُعيد التابع wday
عددا صحيحا يمثل يوم الأسبوع ، 0..6 ، حيث يوم الأحد له القيمة 0.
التابع wednesday?
يُعيد التابع wednesday?
القيمة true
إن كان التوقيت time
يمثل يوم الأربعاء.
التابع yday
يُعيد التابع yday
عددا صحيحا يمثل يوم من السنة ، 1..366.
التابع year
يُعيد التابع year
السنة من التوقيتtime
(بما في ذلك القرن).
التابع zone
يعيد التابع zone
اسم المنطقة الزمنية المستخدمة في التوقيت time
. بدءًا من روبي 1.8، تُعاد السلسلة النصية "UTC" بدلاً من "GMT" لتمثيل عن التوقيت العالمي الموحد UTC.