English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل Ruby الأساسي

دليل Ruby المتقدم

Ruby تاريخ ووقت (Date & Time)

Time استخدام فئة في Ruby لتمثيل التاريخ والوقت. إنها تعتمد على تاريخ和时间 النظام الأساسي الذي يقدمه النظام. قد لا يمكن للفئة تمثيل التاريخ قبل عام 1970 أو بعد عام 2038.

هذا الدليل سيعرض لك جميع المفاهيم المهمة للتاريخ والوقت.

إنشاء التاريخ والوقت الحالي

إليك مثال بسيط للحصول على التاريخ والوقت الحالي:

مثال على الإنترنت

#!/usr/bin/ruby -w
# -*- coding: UTF-8 -*-
 
time1 = Time.new
 
puts "الوقت الحالي: " + time1.inspect
 
# نفس وظيفة Time.now
time2 = Time.now
puts "الوقت الحالي: " + time2.inspect

نتائج الإدخال للنصوص أعلاه هي:

الوقت الحالي: 2015-09-17 15:23:14 +0800
الوقت الحالي: 2015-09-17 15:23:14 +0800

للحصول على مكونات التاريخ والوقت

يمكننا استخدام Time استخدام الكائن للحصول على مكونات التاريخ والوقت. انظر الأمثلة التالية:

مثال على الإنترنت

#!/usr/bin/ruby -w
# -*- coding: UTF-8 -*-
 
time = Time.new
 
# مكونات Time
puts "الوقت الحالي: " + time.inspect
puts time.year        # => السنة في اليوم
puts time.month       # => الشهر في اليوم (من 1 إلى 12)
puts time.day         # => اليوم في الشهر (من 1 إلى 31)
puts time.wday        # => يوم الأسبوع في الأسبوع (0 هو الأحد)
puts time.yday        # => 365: اليوم في السنة
puts time.hour        # => 23:24 نظام الساعة
puts time.min         # => 59
puts time.sec         # => 59
puts time.usec        # => 999999: الميكروثانية
puts time.zone        # => "UTC": اسم المنطقة الزمنية

نتائج الإدخال للنصوص أعلاه هي:

الوقت الحالي: 2015-09-17 15:24:44 +0800
2015
9
17
4
260
15
24
44
921519
CST

Time.utc،Time.gm و Time.local وظيفة

يمكن استخدام هذه الوظائف لتنسيق التواريخ بتنسيق معياري، كما يلي:

# July 8, 2008
Time.local(2008, 7, 8)  
# July 8, 2008, 09:10am، الوقت المحلي
Time.local(2008, 7, 8, 9, 10)   
# July 8, 2008, 09:10 UTC
Time.utc(2008, 7, 8, 9, 10)  
# July 8, 2008, 09:10:11 GMT (مثل UTC)
Time.gm(2008, 7, 8, 9, 10, 11)

إليك مثال على الحصول على جميع المكونات في المسلسل:

[sec,min,hour,day,month,year,wday,yday,isdst,zone]

جرب هذا المثال:

مثال على الإنترنت

#!/usr/bin/ruby -w
 
time = Time.new
 
values = time.to_a
p values

نتائج الإدخال للنصوص أعلاه هي:

[39, 25, 15, 17, 9, 2015, 4, 260, false, "CST"]

يمكن إرسال هذا المسلسل إلى Time.utc أو Time.local للحصول على تنسيقات تاريخ مختلفة، كما يلي:

مثال على الإنترنت

#!/usr/bin/ruby -w
 
time = Time.new
 
values = time.to_a
puts Time.utc(*values)

نتائج الإدخال للنصوص أعلاه هي:

2015-09-17 15:26:09 UTC

إليك كيفية الحصول على الوقت، من العصر إلى الثواني (متعلق بالمنصة):

# يعود من العصر إلى الثواني
time = Time.now.to_i  
 
# تحويل الثواني إلى وقت Time
Time.at(time)
 
# يعود من العصر إلى الثواني، يحتوي على الميكروثانية
time = Time.now.to_f

منطقة الزمنية والإجازة الصيفية

يمكنك استخدام Time للحصول على جميع المعلومات المتعلقة بتوقيت المنطقة والإجازة الصيفية، كما يلي:

time = Time.new
 
# هذا هو التفسير
time.zone       # => "UTC": العودة إلى منطقة الزمنية
time.utc_offset # => 0: UTC هو نسبة إلى UTC 0 ثانية منسوب
time.zone       # => "PST" (أو منطقة زمنية أخرى)
time.isdst      # => false: إذا لم يكن لدى UTC DST (الإجازة الصيفية)
time.utc?       # => true: إذا كانت في منطقة الزمنية UTC
time.localtime  # تحويل إلى منطقة الزمنية المحلية
time.gmtime # تحويل إلى UTC
time.getlocal # يعيدُ إنشاءً جديدًا لـ Time في المنطقة المحلية
time.getutc # يعيدُ إنشاءً جديدًا لـ Time في UTC

تنسيق التاريخ والوقت

هناك عدة طرق لتشكيل تاريخ和时间. فيما يلي مثال على بعضها:

مثال على الإنترنت

#!/usr/bin/ruby -w
time = Time.new
 
puts time.to_s
puts time.ctime
puts time.localtime
puts time.strftime("%Y-%m-%d %H:%M:%S")

نتائج الإدخال للنصوص أعلاه هي:

2015-09-17 15:26:42 +0800
Thu Sep 17 15:26:42 2015
2015-09-17 15:26:42 +0800
2015-09-17 15:26:42

تعليمات تنسيق الوقت

الجدول التالي يبين التعليمات والطرق. Time.strftime استخدامها معًا.

تعليماتوصف
%aاختصار اسم اليوم من الاسبوع (مثل الاحد).
%Aاسم اليوم من الاسبوع الكامل (مثل الاحد).
%bاختصار اسم الشهر (مثل ينا).
%Bاسم الشهر الكامل (مثل يناير).
%cطريقة التعبير المفضلة للتاريخ والوقت المحلي.
%dاليوم من الشهر (من 01 إلى 31).
%Hالساعة من اليوم، نظام 24 ساعة (من 00 إلى 23).
%Iالساعة من اليوم، نظام 12 ساعات (من 01 إلى 12).
%jاليوم من السنة (من 001 إلى 366).
%mالشهر من السنة (من 01 إلى 12).
%Mالدقيقة من الساعة (من 00 إلى 59).
%pاشارة الشروق والغروب (صباحًا أو مساءً).
%Sثانية من الدقيقة (00 أو 60).
%Uالاسبوع الحالي من السنة، يبدأ من الاحد الاول (يكون الاسبوع الاول اول يوم اسبوع). (من 00 إلى 53).
%Wالاسبوع الحالي من السنة، يبدأ من الاثنين الاول (يكون الاسبوع الاول اول يوم اسبوع). (من 00 إلى 53).
%wاليوم من الأسبوع (الاحد هو 0، من 0 إلى 6).
%xطريقة التعبير المفضلة للتاريخ فقط بدون وقت.
%Xطريقة التعبير المفضلة للوقت فقط بدون تاريخ.
%yمشاركة سنة بدون قرن (من 00 إلى 99).
%Yسنة مع قرن.
%Zاسم منطقة الوقت.
%%% رمز.

خوارزمية الوقت

يمكنك استخدام الوقت لإجراء حسابات بسيطة، مثل ما يلي:

now = Time.now # الوقت الحالي
puts now
 
past = now - 10 # 10 ثواني قبل الآن Time - عدد => Time
puts past
 
future = now + 10 # من الآن 10 ثواني Time + عدد => Time
puts future
 
diff = future - now # => 10 Time - Time => عدد الثواني
puts diff

نتائج الإدخال للنصوص أعلاه هي:

2015-09-17 15:27:08 +0800
2015-09-17 15:26:58 +0800
2015-09-17 15:27:18 +0800
10.0