English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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
これらの関数は以下のように標準フォーマットの日付をフォーマットするために使用できます:
# 7月 8, 2008 Time.local(2008, 7, 8) # 7月 8, 2008, 09:10午前、ローカル時間 Time.local(2008, 7, 8, 9, 10) # 7月 8, 2008, 09:10 UTC Time.utc(2008, 7, 8, 9, 10) # 7月 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 # UTCに新しいTimeオブジェクトを返す
さまざまな方法で日付と時間をフォーマットすることができます。以下の例はその一部を示しています:
#!/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 | 週の名前の省略形(例えばSun)。 |
%A | 週の名前の完全形式(例えばSunday)。 |
%b | 月の名前の省略形(例えばJan)。 |
%B | 月の名前の完全形式(例えばJanuary)。 |
%c | 最も好ましいローカルな日付と時間の表示法。 |
%d | 月の何日目(01 から 31)。 |
%H | 一日の何時間目、24 時間制度(00から 23)。 |
%I | 一日の何時間目、12 時間制度(01 から 12)。 |
%j | 年の何日目(001 から 366)。 |
%m | 年の何ヶ月目(01 から 12)。 |
%M | 時間の何分目(00から 59)。 |
%p | 子午線指示(AMまたはPM)。 |
%S | 分の何秒目(00または 60)。 |
%U | 現在年の週数、最初の日曜日(第1週の最初の日)から始まる(00から 53)。 |
%W | 現在年の週数、最初の月曜日(第1週の最初の日)から始まる(00から 53)。 |
%w | 一週間のどの日に属するか(日曜日が0、0から 6)。 |
%x | 日期のみを優先表示する形式。 |
%X | 時間のみを優先表示する形式。 |
%y | 世紀を含まない年表示(00 から 99)。 |
%Y | 世紀を含む年。 |
%Z | 時区名。 |
%% | % 文字。 |
時間を使って簡単な算術ができます。以下のようになります:
now = Time.now # 現在時刻 puts now past = now - 10 # 10 秒前に。Time - number => Time puts past future = now + 10 # 現在から始める 10 秒後に。Time + number => 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