صفحة الصنف Time
في روبي
الصنف Time
هو تجريد لمفهومي التاريخ والوقت. يتم تخزين Time
داخليا كعدد الثواني (مع كسورها) منذ حقبة يونيكس (1 يناير 1970 00:00 بالتوقيت العالمي). انظر أيضا الوحدة Date
لمزيد من المعلومات.
يعامِل الصنفTime
توقيت جرينتش (GMT) و التوقيت العالمي الموحد (UTC) على أنهما متكافئان. توقيت جرينتش هو الطريقة الأقدم للإشارة إلى هذه الأوقات المرجعية، ولا تزال موجودة في أسماء الاستدعاءات على أنظمة 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
، والذي يأخذ عدد الثواني (أو أعشار الثواني) منذ حقبة يونيكس.
Time.at(628232400) #=> 1989-11-28 00:00:00 -0500
العمل مع التوقيتات
بمجرد أن تُنشئ توقيتًا (نسخة من Time
)، فهناك العديد من الأشياء التي يمكنك القيام بها. فيما يلي بعض الأمثلة.
في جميع الأمثلة التالية، سنفترض أنك قمت بما يلي:
t = Time.new(1993, 02, 24, 12, 0, 0, "+09:00")
هل t
يتوافق مع يوم الاثنين؟
t.monday? #=> false
أي عام هو هذا؟
t.year #=> 1993
هل 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
توقيتا جديدًا.
التابع gm
ينشئ التابع gm
توقيتا استنادًا إلى القيم المعطاة،
التابع local
التابع local
مشابه لـ gm
، ولكنه يفسر القيم في إطار المنطقة الزمنية المحلية.
التابع mktime
التابع mktime
مشابه لـ gm
، ولكنه يفسر القيم في إطار المنطقة الزمنية المحلية.
التابع new
يعيد التابع new
توقيتا جديدا.
التابع now
يُنشئ التابع now
توقيتا جديدا للوقت الحالي.
التابع utc
ينشئ التابع utc
توقيتا استنادًا إلى القيم المعطاة،
توابع النسخة العامة (Public Instance Methods)
التابع +
معامل الإضافة - يضيف بعض الثواني (ربما كسرية) إلى التوقيت
التابع -
معامل الفرق - يُعيد فرق الثواني على شكل عدد عشري Float
التابع <=>
معامل الموازنة - يقارن توقيتين
التابع asctime
يُعيد التابع asctime
تمثيلا نصيا قانونيا للتوقيت.
التابع ctime
يُعيد التابع ctime
تمثيلا نصيا قانونيا للتوقيت.
التابع day
يستخلص التابع day
رقم اليوم من الشهر.
التابع dst?
يُعيد التابع dst?
القيمة true
إن وقع time
أثناء التوقيت الصيفي
التابع eql?
يتحقق من تساوي توقيتين.
التابع friday?
يُعيد التابع friday?
القيمة true
إن كان التوقيت يمثل يوم الجمعة.
التابع getgm
يُعيد التابع getgm
توقيتا Time
جديدا يمثل التوقيت الذي استُدعي معه بالتوقيت العالمي الموحد (UTC).
التابع getlocal
يُعيد التابع getlocal
توقيتا جديدا يمثل التوقيت الذي استُدعي معه بالتوقيت المحلي
التابع getutc
يُعيد التابع getutc
توقيتا جديدا يمثل التوقيت الذي استُدعي معه بالتوقيت العالمي الموحد (UTC).
التابع gmt?
يُعيد التابع gmt?
القيمة true
إن كان التوقيت ضمن نطاق التوقيت العالمي الموحد (UTC).
التابع gmt_offset
يُعيد التابع gmt_offset
فرق الثواني بين المنطقة الزمنية للتوقيت والتوقيت العالمي الموحد UTC.
التابع gmtime
يحول التابع gmtime
التوقيت إلى التوقيت العالمي الموحد
التابع gmtoff
يُعيد التابع gmtoff
فرق الثواني بين المنطقة الزمنية للتوقيت و التوقيت العالمي الموحد (UTC).
التابع hash
يُعيدرمز تجزئة (hash code) للتوقيت.
التابع hour
يُستخلص التابع hour
من التوقيت رقم الساعة من اليوم
التابع inspect
يُعيد التابع inspect
سلسلة نصية تمثل التوقيت.
التابع isdst
يُعيد التابع isdst
القيمة true
إن وقع التوقيت أثناء التوقيت الصيفي
التابع localtime
يحول التابع localtime
التوقيت إلى التوقيت المحلي
التابع mday
يستخلص التابع mday
من التوقيت رقم اليوم من الشهر
التابع min
يستخلص التابع min
من التوقيت رقم الدقيقة من الساعة
التابع mon
يستخلص التابع mon
من التوقيت رقم الشهر من السنة
التابع monday?
يُعيد التابع monday?
القيمة true
إن كان التوقيت time
يمثل يوم الاثنين.
التابع month
يستخلص التابع month
من التوقيت رقم الشهر من السنة
التابع nsec
يُعيد التابع nsec
عدد النانوثواني المقابل للتوقيت.
التابع round
يُقرّب التابع round
الثواني الكسرية وفق دقة معينة.
التابع saturday?
يُعيد التابع saturday?
القيمة true
إن كان التوقيت يمثل يوم السبت.
التابع sec
يستخلص التابع sec
من التوقيت رقم الثانية في الدقيقة
التابع strftime
يُنسق التابع strftime
التوقيت وفقًا للموجّهات (directives) الموجودة في سلسلة التنسيق المعطاة.
التابع subsec
يُعيد التابع subsec
الجزء العشري من التوقيت.
التابع succ
يُعيد التابع succ
توقيتا جديدًا، مع إضافة ثانية واحدة على التوقيت الذي استُدعي معه
التابع sunday?
يُعيد التابع sunday?
القيمة true
إن كان التوقيت يمثل يوم الأحد.
التابع thursday?
يُعيد التابع thursday?
القيمة true
إن كان التوقيت يمثل يوم الخميس.
التابع to_a
يُعيد التابع to_a
مصفوفة عشارية تضم قيم التوقيت
التابع to_f
يُعيد التابع to_f
قيمة التوقيت كعدد عشري يمثل عدد الثواني التي مرت منذ حقبة يونيكس.
التابع to_i
يُعيد التابع to_i
قيمة التوقيت كعدد صحيح يمثل عدد الثواني التي مرت منذ حقبة يونيكس.
التابع to_r
يُعيد التابع to_r
قيمة التوقيت كعدد جذري يمثل عدد الثواني التي مرت منذ حقبة يونيكس.
التابع to_s
يُعيد التابع to_s
سلسلة نصية تمثل التوقيت
التابع tuesday?
يُعيد التابع tuesday?
القيمة true
إن كان التوقيت يمثل يوم الثلاثاء.
التابع tv_nsec
يُعيد التابع tv_nsec
عدد النانوثواني المقابلة للتوقيت التي مرت منذ حقبة يونيكس.
التابع tv_sec
يُعيد التابع tv_sec
القيمة المقابلة للتوقيت التي تمثل عدد الثواني التي مرت منذ حقبة يونيكس.
التابع tv_usec
يُعيد التابع tv_usec
المقابلة للتوقيت التي تمثل عدد الميكروثواني التي مرت منذ حقبة يونيكس.
التابع usec
يُعيد التابع usec
القيمة المقابلة للتوقيت التي تمثل عدد الميكروثواني التي مرت منذ حقبة يونيكس.
التابع utc
ينشئ التابع utc
توقيتا جديدا استنادًا إلى القيم المعطاة، ويتم تفسيره وفق التوقيت العالمي الموحد UTC (GMT).
التابع utc?
يُعيد التابع utc?
القيمة true
إن كان التوقيت ضمن نطاق التوقيت العالمي الموحد
التابع utc_offset
يُعيد التابع utc_offset
فرق الثواني بين المنطقة الزمنية للتوقيت والتوقيت العالمي الموحد UTC.
التابع wday
يُعيد التابع wday
عددا صحيحا يمثل رقم اليوم في الأسبوع
التابع wednesday?
يُعيد التابع wednesday?
القيمة true
إن كان التوقيت يمثل يوم الأربعاء.
التابع yday
يُعيد التابع yday
عددا صحيحا يمثل رقم اليوم في السنة ، 1..366.
التابع year
يستخلص التابع year
من التوقيت الذي استُدعي معه قيمة السنة (بما في ذلك القرن).
التابع zone
يعيد التابع zone
اسم المنطقة الزمنية المستخدمة في التوقيت.