文字列「"202002151650"」をTimeに変換して好きな日時形式で表示したい

【結論】

「Time#parseメソッド」と「strftime」を利用する。

【過程】

まず現在の時刻を取得してみましょう。





now = time.now puts now

続いて数字文字列(?)を用意しましょう。

「2020年の2月15日の24時間表示で16時50分」という12桁の数字文字列です。これのクラスと現在の時刻のクラスを確認します。





time = "202002151650" puts now.class puts time.class

このtimeを「Stringクラス」から「Timeクラス」へ変換したいです。

調べる…

Google検索「ruby 文字列 日時 変換
【参考にさせていただいたサイト】
Rubyで文字列を日時に変換する方法 – maeharinの日記
Rubyで文字列からTime型または DateTime型に変換する – @Konboi memo

Timeクラスのparseメソッドを使います。このparseメソッドを使うために「require “time”」の記述をします。また、別の変数を使ってもいいですが、同じ変数に紐づけてクラスの確認をします。





time = Time.parse(time) puts time.class

あとはstrtimeで表示の変換を行います。私は「strtime」という言葉を知っていましたが、使い方を後回しにしていたので調べてみました。

Google検索「ruby strftime フォーマット
【Ruby入門】strftimeで日付・時刻を書式指定して文字列に変換する | 侍エンジニア塾ブログ(Samurai Blog) – プログラミング入門者向けサイト

私の希望する表示結果は「2020年02月15日16:50」です。よって上記のサイトを参考にさせていただき、このようにしました。





puts time.strftime("%Y年%m月%d日%H:%M")