LoginSignup
22
15

More than 5 years have passed since last update.

Time の一部を自由自在に改変したい

Posted at

あの時間に戻れたら…
あの時間に飛ぶことができたら…

そんな願いを叶えてくれる時の魔術師、それが Time#change である。

現在時刻が 2014/01/01 00:00:00 だとします。

now = Time.zone.parse("2014/01/01 00:00:00")
#=> Wed, 01 Jan 2014 00:00:00 JST +09:00

2020年に飛びたいな。

now.change(year: 2020)
#=> Wed, 01 Jan 2020 00:00:00 JST +09:00
now
#=> Wed, 01 Jan 2014 00:00:00 JST +09:00

٩( 'ω' )و 飛べた!

しかし、実際には現在の世界線から別の世界線が派生しただけで、
現在は変えられないのです (つまり破壊的メソッドではない) 。

ちなみに、時間を変えることも可能です。

time.change(hour: 23, min: 59, sec: 59)
#=> Wed, 01 Jan 2014 23:59:59 JST +09:00

オプションで指定できるのは、
:year, :month, :day, :hour, :min, :sec, :usec だそうです。

マイクロ秒まで操作できるなんて、Time#change ちゃんパないの!

22
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
15