cript> $(function(){ $('.accordion > dl > dt').on('click',function(){ var Dopenclass = $(this).attr('class'); $(this).next('dd').slideToggle(); if(!Dopenclass){ $(this).addClass('dopen'); }else{ $(this).removeClass('dopen'); } }); }); ,en,eo,es,et,eu,fa,fi,fr,ga,gd,gl,gu,ha,haw,hi,hmn,hr,ht,hu,id,ig,is,it,ja,jv,ka,kk,km,kn,ku,ky,mg,mi,mk,mn,ms,my,ne,nl,no,ny,pa,pl,ps,YYpt,sb,sd,si,sk,sl,sm,sn,so,sq,sr,su,sw,sv,ta,te,tg,th,tr,uk,ur,uz,vi,xh,yi,zh-TW,zu', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, autoDisplay: false}, 'google_translate_element'); }
 クラウディア
1. 概要
2. 現在 now
3. 演算
4. 書式出力 strftime
5. 文字列を日時に strptime

1. 概要

 Time クラスで日付と時刻を扱うようです。

2. 現在 now

 now で現在日時をローカルで取得するようです。  下記のソースを書いて
now = Time::now()
puts("#{now}")
puts("#{now.year}年#{now.mon}月#{now.day}日 #{now.hour}:#{now.min}:#{now.sec}")
puts(sprintf("%04d年%02d月%02d日 %02d:%02d:%02d", now.year, now.mon, now.day, now.hour, now.min, now.sec))
puts("#{now.to_s}")

 実行すると以下のような結果が得られます。
2020-04-08 14:33:29 +0900
2020年4月8日 14:33:29
2020年04月08日 14:33:29
2020-04-08 14:33:29 +0900

3. 演算

 知りたかったのは、減算ですが。  普通に演算できるようです。  演算の結果は Float となる(単位は秒)ようで、書式化するのには工夫がいるようです。  下記のソースを書いて  実行すると以下のような結果が得られます。

時刻1 [2018-08-02 15:49:13 +0900]
時刻2 [2018-08-02 15:50:13 +0900]
差     [60.162065836]
0:01:00
 熟知していれば、もっとスマートなソースが書けるんでしょうね。

4. 書式出力 strftime

 strftime というメソッドを使用すれば、書式付きで出力できます。  「class Time (Ruby 2.5.0)」に詳細が記述されています。  ここはマニュアルではないので、わたしの使うものだけ・・・。
書式 出力
%H 24時間制の時(00-23)
%M 分(00-59)
%S 秒(00-60) (60はうるう秒)
%d 日(01-31)
%m 月(01-12)
%Y 西暦4桁





 というソースを書いて実行すると以下のような結果が得られます。



5. 文字列を日時に strptime

 前項の逆で文字列を日時に変換するには strptime を使うようです。  本項は「Rubyで文字列を日時に変換する方法 - maeharinの日記」を参考にさせていただきました。  というソースを書いて実行すると以下のような結果が得られます。
now = Time::now()
puts("#{now}")
puts("#{now.year}年#{now.mon}月#{now.day}日 #{now.hour}:#{now.min}:#{now.sec}")
puts(sprintf("%04d年%02d月%02d日 %02d:%02d:%02d", now.year, now.mon, now.day, now.hour, now.min, now.sec))
puts("#{now.to_s}")

now = Time::now()
puts("#{now}")
puts("#{now.year}年#{now.mon}月#{now.day}日 #{now.hour}:#{now.min}:#{now.sec}")
puts(sprintf("%04d年%02d月%02d日 %02d:%02d:%02d", now.year, now.mon, now.day, now.hour, now.min, now.sec))
puts("#{now.to_s}")

2020-04-08 14:33:29 +0900
2020年4月8日 14:33:29
2020年04月08日 14:33:29
2020-04-08 14:33:29 +0900
now = Time::now()
puts("#{now}")
puts("#{now.year}年#{now.mon}月#{now.day}日 #{now.hour}:#{now.min}:#{now.sec}")
puts(sprintf("%04d年%02d月%02d日 %02d:%02d:%02d", now.year, now.mon, now.day, now.hour, now.min, now.sec))
puts("#{now.to_s}")

2020-04-08 14:33:29 +0900
2020年4月8日 14:33:29
2020年04月08日 14:33:29
2020-04-08 14:33:29 +0900
 
 
カウンタバックグラウンド