finally I came up with as below :

require 'date'

text_t = '2:12:03 PM ET'
dt = DateTime.parse(text_t, '%I:%M %p %Z')
# => #<DateTime: 2013-07-03T14:12:03+00:00 
((2456477j,51123s,0n),+0s,2299161j)>
dt.to_s
# => "2013-07-03T14:12:03+00:00" # !> invalid offset is ignored
dh = Date._strptime(dt.to_s,'%Y-%m-%dT%H:%M:%S%z')
# => {:year=>2013,
#     :mon=>7,
#     :mday=>3,
#     :hour=>14,
#     :min=>12,
#     :sec=>3,
#     :zone=>"+00:00",
#     :offset=>0}

dh[:hour] += 30 # => 44
dh
# => {:year=>2013,
#     :mon=>7,
#     :mday=>3,
#     :hour=>44,
#     :min=>12,
#     :sec=>3,
#     :zone=>"+00:00",
#     :offset=>0}

dh.values[0..-2].join(" ")
# => "2013 7 3 44 12 3 +00:00"
DateTime.ordinal(*dh.values[0..-3])
# => #<DateTime: 2013-01-07T03:44:12+00:00 
((2456300j,13452s,0n),+0s,2299161j)>

Please suggest me if any wrong calculation has been made by me? Please

Thanks

-- 
Posted via http://www.ruby-forum.com/.