RubyでTimeクラスを扱う方法【初心者向け】
初心者向けにRubyでtimeを使う方法について解説しています。これは時刻を扱うクラスになります。基本の書き方と実行後の値の見かた、表記の指定の方法などを覚えていきましょう。実際にソースコードを書いているので、参考にしてみてください。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Rubyでtimeを使う方法について解説します。
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
今回は、Rubyに関する内容だね!
どういう内容でしょうか?
timeの使い方について詳しく説明していくね!
お願いします!
Timeクラスとは
Ruby で、時刻を扱うためには Time クラスを使います。Time オブジェクトは、ある特定の時刻(起算時と呼びます)からの経過秒数を保持しています。
起算時は、協定世界時(UTC)の1970年1月1日午前0時0分0秒です。この起算時からの経過秒数を適切に変換することで、日本時間や各国の時刻を表します。
timeの書き方
現在時刻を取得するには、
Time.now
と書きます。
時刻を設定した Time オブジェクトを作る時は、
time = Time.local 2018, 1, 3, 15, 0, 0
のように書きます。
Time オブジェクトは、比較演算子で比較したり、to_s で文字列表現に変換することが出来ます。
time = Time.local 2018, 1, 1, 0, 0, 0 now = Time.now if now < time puts "#{time.to_s} より前の時刻です。" else puts "#{time.to_s} より後の時刻です。" end
実際に書いてみよう
時刻はRubyプログラムの様々な場面で使います。ファイルの更新時刻が前回読み込んだ時よりも新しいかどうか調べたり、時刻順に並べたり、普通に時刻を表示するのに使います。
以下の例は、時刻を新しい順に並び替え、その日付を日本語で表示するプログラムです。
list = [] list << Time.local(2017, 1, 10, 12, 30, 0) list << Time.local(2017, 4, 28, 11, 15, 20) list << Time.local(2018, 6, 1, 20, 10, 50) list.sort.reverse.each do |t| weekday = %w(日 月 火 水 木 金 土)[t.wday] puts t.strftime "%Y年%m月%d日(#{weekday}) %H時%M分%S秒" end
実行結果
2018年06月01日(金) 20時10分50秒 2017年04月28日(金) 11時15分20秒 2017年01月10日(火) 12時30分00秒
監修してくれたメンター
吉本 敏洋
フリーランスとして、WEB系ベンチャーでRailsアプリの開発を行っています。 フリーランスとしてRailsの案件に関わるようになって、10年以上になります。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。