[ruby-list:48689] 日時の文字列をTimeクラスに変換したい

From: ichirojiro@...
Date: 2012-04-09 11:16:35 UTC
List: ruby-list #48689
ichirojiroです

画面から入力された日時をTimeクラスの変数にしたいと思い、
DateTime.strptimeを使って変換しました。

# -*- encoding:utf-8 -*-
require "date"
  text = "2012年04月09日18時00分00秒"
  time = DateTime.strptime(text, "%Y年%m月%d日%H時%M分%S秒").to_time
  p time #=> 2012-04-10 03:00:00 +0900

しかし結果は期待していたものより9時間進んだものになりました。
とりあえず次のようにすれば期待通りになりました。

# -*- encoding:utf-8 -*-
require "date"
  text = "2012年04月09日18時00分00秒"
  time = DateTime.strptime(text + "+900", "%Y年%m月%d日%H時%M分%S秒
%z").to_time
  p time #=> 2012-04-09 18:00:00 +0900

質問ですが、"+900"のようなコンスタントを使わずに、文字列の日時を日本時間
としてTimeクラスの変数に変換する方法はありませんでしょうか。






In This Thread

Prev Next