2016-04-26 11 views
-1

算術演算子を使用してRuby DateTimeを文字列にフォーマットするにはどうすればよいですか? 通常の場合:私はしたい算術演算子を使用したRubyの日付フォーマット

time = Time.now.utc 
#=> 2016-04-26 12:00:19 UTC 
time.strftime("%Y %m") 
#=> "2016 04" 

は、例えば、0から始まるインデックスを作成ヶ月間の出力を取得する(1月は月0で、12月は月11です):

time.strftime("%Y %(m-1)") # or something similar method 
#=> "2016 03" 
or 
#=> "2016 3" 

注:変更しないtime

+1

あなたは算術演算子とはどういう意味ですか?マイナス ' - 'の意味ですか?あるいは 'strftime'を意味しますか? – sawa

+0

私は 'strftime'やそれに類するメソッドの中で' -'と似ています。 – Ilya

答えて

1

これは元の質問に対する回答であり、変更後の質問に対する回答ではありません。

strftimeで行うことはできません。補間や文字列形式で行います。

"%02d" % (time.month - 1) 
# => "03" 
+1

年を簡単に組み込むことができます: '%d%02d"%[time.year、time.month - 1] ' – Stefan

+0

@Stefanそうです。私が答えた後、OPは質問を変えました。 – sawa

1

strftimeあなたは引数として、このような算術演算を行うことが可能ですが、あなたはyearを分離し、month、文字列として月と連結上のあなたに必要なアクションを実行することができません。

> time.strftime("%Y ") + "#{time.strftime('%m').to_i - 1}" 
#=> "2016 3" 
> time.strftime("%Y ") + (time.strftime('%m').to_i - 1).to_s 
#=> "2016 3" 

OR

> time.year.to_s + " #{time.month - 1}" 
#=> "2016 3" 
+0

文字列の連結と補間を混在させないで、どちらか一方を選択します。 – Stefan

+0

@Stefan:必要な出力を表示するだけで混合しました –

関連する問題