RubyのTimeオブジェクトの共通機能まとめ
時刻オブジェクトです。Time.nowは現在の時刻を返します。
1. time.at
Time.at(time[, usec])
timeが参照している時刻のTimeオブジェクトを返します。timeはTimeオブジェクトか、開始時刻からの秒数を表す整数または浮動小数点数です。
浮動小数点の精度が十分でない場合、usecを使用することができます。これは,time + (usec/1000000)で表される時間を返します。この場合,timeとusecは共に整数でなければならない。
出来上がったTimeオブジェクトは、ローカルタイムのタイムゾーンを使用します。
2. 時刻.gm、時刻.utc
Time.gm(year[, mon[, day[, hour[, min[, sec[, usec]]]]]])
Time.gm(sec, min,hour, mday, mon, year, wday, yday, isdst, zone)
Time.utc(year[, mon[, day[, hour[, min[, sec[, usec]]]]]])
Time.utc(sec,min, hour, mday, mon, year, wday, yday, isdst, zone)
パラメータで指定されたUTC時間オブジェクトを返す。最初のパラメータの後に、すべてのオプションのパラメータが続く。これらのパラメータが省略された場合、最も小さい値が使用されます。
これらのパラメータは文字列も扱うことができる。
例
p Time.gm *"2002-03-17".split("-")[v1] # => Sun Mar 17 00:00:00UTC 2002
に相当します。
p Time.gm(*"2002-03-17".split("-"))
時刻は、railsの文字列からparseで直接変換できます。
p Time.parse("2002-03-17") #=> Sun Mar 17 00:00:00 +0800[v2] 2002
3. time.local、time.mktime
Time.local(year[, mon[, day[, hour[, min[, sec[,usec]]]]]])
Time.local(sec, min, hour, mday, mon, year,wday, yday, isdst, zone)
Time.mktime(year[, mon[, day[, hour[, min[, sec[,usec]]]]]])
Time.mktime(sec, min, hour, mday, mon,year, wday, yday, isdst, zone)
パラメータで指定された場所の時刻のTimeオブジェクトを返します。
4. time.new、time.now
現在の時刻を返すTimeオブジェクトです。newとnowの違いは、initializeを呼び出している点です。
5. 時間.回
Time.times((<obsolete>))
自プロセスおよび子プロセスが消費したユーザー/システムの CPU 時間を Struct::Tms として返します。Struct::Tmsは構造体クラスで、以下のメンバを持ちます。
utime # user time
stime # system time
cutime # user time ofchildren
cstime # system timeofchildren
時間は浮動小数点数で秒単位で表されます。
6.自己+他
selfの次の秒のもう一方の時刻を返します。
7.自己-他
otherがTimeオブジェクトの場合、両者の差をFloatで秒単位で返します。otherが値の場合、selfの前の時間otherの秒数を返します。
8.自己 <=>その他
時間の比較 . その他はTimeオブジェクトか数値でなければならない。数値の場合は、時刻を計算して比較してからの経過秒数として扱われます。
9. asctime, ctime
時刻をasctime形式の文字列に変更します。ただし、末尾の "unus "を除きます。
10, GMT?, utc?
selfのタイムゾーンが協定世界時である場合、trueを返します。
11. getgm、getutc
タイムゾーンをUTCに設定したTimeオブジェクトを新規に生成して返します。
12. getlocal
タイムゾーンをローカルタイムに設定した新しいTimeオブジェクトを生成して返します。
13. gmtime, utc
タイムゾーンを協定世界時(CU)に設定します。selfを返す。
このメソッドを呼び出した後、時刻の変更は協定世界時で処理されます。UTCを表示させたい場合は、そのようにします。
14. ローカルタイム
タイムゾーンをローカルタイムに設定します(デフォルト)。selfを返します。
このメソッドを呼び出した後、時刻の変更はローカルタイムと協調して処理されます。
時刻の書式設定方法。
a 曜日名の略称(例:Sun)。
A 曜日の正式名称です(例:日曜日)。
b 月名の略称(例:Jan)。
B 月名のフルネーム(例:1月)。
%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月曜日(第1週の初日)から始まる、現在の年の週数(00から53)。
w 1週間の日数(日曜日は0、0〜6)です。
x 時刻を伴わない日付のみの表現が望ましい。
X 日付がなく時間だけが表示されることを好む。
y 世紀を含まない年表示(00~99)。
Y センチュリー付きの年です。
Z タイムゾーンの名称
使用方法
Time.now.strftime("%Y-%m-%d %H:%M:%S")
=> 2015-09-24 22:20:26
いくつかの頻繁に使用されるか、または覚えて非常に良い、他の使用はもちろん、行を調べるために、最高のものを覚えて、私はすべてを覚えていないことができます。
追記:Timeオブジェクトを使って、様々な日付と時間のコンポーネントを取得することができます。
以下の例をご覧ください。
time = Time.new
puts time.year => 日付の年を指定します。
puts time.month => 日付の月(1~12)を指定します。
puts time.day => 月の初日(1~31日)。
puts time.day => 曜日(0は日曜日)を指定します。
puts time.yday => 365: 1年のうちの1日
puts time.hour => 23: 24時間制の場合
puts time.min => 59
puts time.sec => 59
puts time.usec => 999999: マイクロ秒
puts time.zone => "UTC":タイムゾーン名
時間アルゴリズム
now = Time.now # Current time
past = now - 10 # 10 seconds ago. time - number => Time
future = now + 10 # 10 seconds from now. time + number => Time
diff = future - now # => 10 Time - Time => Seconds
上記はrubyの時間アルゴリズムです。
railsでは今でも下記をずっと使っています。
now = Time.now
past1 = now - 10.day
past2 = now - 10.month
past3 = now - 10.year
これらは、やはり非常に便利なメソッドで、数字+. 時間を表現するメソッドで、10.dayは実際には10×24×60×60秒に変換されます。railsはこれらのメソッドに対応するクラスを提供しています。
関連
-
Ruby on rails install to remove DL is deprecated, please use Fiddle warning message method [test available].
-
バブルソートアルゴリズムの簡易実装とRuby版
-
Rubyプログラムにおける正規表現の基本的な使い方に関するチュートリアル
-
Rubyのinstance_evalメソッドとclass_evalとの比較
-
Jekyll静的ウェブサイトのバックエンドエンジンのチュートリアル
-
RubyおよびRuby on RailsでJSON形式のデータをパースするためのチュートリアルの例
-
Rubyのデザインパターン。プログラミングにおけるアピアランスパターンの応用
-
Rubyのデザインパターン。プログラミングにおけるストラテジーパターンの活用
-
Rubyのデザインパターン。プログラミングにおけるシングルトンパターンの活用
-
ブログのスパムメッセージを簡単にブロックする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン