RubyにおけるTimeオブジェクトの共通関数のまとめ

4382 ワード

时间オブジェクトTime.nowは現在の時間を返す.
1、Time.at
Time.at(time[, usec])
timeが示す時間のTimeオブジェクトを返す.timeは、Timeオブジェクトであるもよいし、起算時間からの秒数を表す整数または浮動小数点数であってもよい.
浮動小数点の精度が足りない場合はusecを使用することができる.time+(usec/10000000)で示す時間を返します.この場合、timeもusecも整数である必要がある.
生成されたTimeオブジェクトは、ローカル時のタイムゾーンを使用する.
2、Time.gm、Time.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)


パラメータにより指定する協調世界時のTimeオブジェクトを返す.第1パラメータの後は全てオプションパラメータである.これらのパラメータを省略すると最小の可能値が使用する.
これらのパラメータは文字列を処理することもできる.
例:

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

Time.times(())


自己プロセスとそのサブプロセスで消費するユーザ/システムCPU時間をStruct::Tmsとして返す.Struct::Tmsは構造体クラスで、以下のメンバーがいる.
 

utime  # user time

stime  # system time

cutime  # user time ofchildren

cstime  # system timeof children


時間を浮動小数点数で表す、その単位は秒である.
 
6、self + other
selfの後のother秒の時間を返します.
 
7、self - other
otherがTimeオブジェクトであると、この2つの間の時間差をFloat形式で返す、単位は秒である.otherが数値である場合、selfより前のother秒の時間を返す.
 
8、self <=>other
時間の比較otherは、Timeオブジェクトまたは数値である必要がある.数値なら起算時間から経過する秒数として比較する.
 
9、asctime、ctime
時間をasctime形式の文字列に変更する.ただし、末尾は含まれません.
 
10、gmt?、utc?
selfのタイムゾーンが協調世界である場合、真に戻る.
 
11、getgm、getutc
新たに生成する、1つのタイムゾーンが協調世界に設定されたときのTimeオブジェクトを返す.
 
12、getlocal
新たに生成する、1つのタイムゾーンがローカルに設定されたときのTimeオブジェクトを返す.
 
13、gmtime、utc
タイムゾーンを協調世界とする場合.selfを返します.
この方法を呼び出すと、時間変換の問題は、世界を調整する際の方法で処理される.調和のとれた世界を表示したい場合は、このようにすることができます.
 
14、localtime
タイムゾーンをローカルに設定場合(デフォルト).selfを返します.
このメソッドを呼び出すと、時間変換の問題は、場所を調整する方法で処理される.
時間フォーマット命令:%a曜日名の略語(Sunなど).A曜日名のフルネーム(Sundayなど).b月名の略語(Janなど).B月名のフルネーム(Januaryなど).c好ましいローカル日付と時間表現.%d 1ヶ月目の日付(01~31).H 1日のうち何時間目、24時間制(00~23).I 1日目の何時間目、12時間制(01~12).j 1年目の日付(001~366).m年間の数ヶ月目(01~12).M時間の数分目(00~59).p子午線指示(AMまたはPM).S分の数秒目(00または60).U現在の年間の週数は、最初の日曜日(最初の週の初日)から(00~53).W現在の年間の週数は、最初の月曜日(最初の週の初日)から(00~53).w一週間の何日目(Sundayは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

いくつかよく使うのはやはり覚えやすいので、他の使う时に調べればいいです.もちろん覚えたほうがいいです.私は全部覚えていません.
PS:Timeオブジェクトを使用して、様々な日付と時間のコンポーネントを取得できます.
次の例を参照してください.

time = Time.new

 puts time.year=>日付の年puts time.month=>日付の月(1~12)puts time.day=>1ヶ月目の日付(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:タイムゾーン名
じかんアルゴリズム

now = Time.now  #     
past = now - 10  # 10    。Time - number => Time
future = now + 10  #       10    。Time + number => Time
diff = future - now # => 10 Time - Time =>   

上記はrubyにおける時間アルゴリズムである.普段railsでは次のようなものがよく使われています.

now = Time.now
past1 = now - 10.day
past2 = now - 10.month
past3 = now - 10.year

これらはやはり実用的な方法で、数字+.時間の表示方法で表す、10.dayは実は10に変換されました×24×60×60秒です.railsはこれらの方法のクラスを提供します.