def self.ruby_to_cimdatetime val
require 'date'
t = nil
case val
when Time
s = val.strftime "%Y%m%d%H%M%S.%6N"
utc = val.utc_offset
if utc < 0
s << "-"
utc = -utc
else
s << "+"
end
val = s + ("%03d" % (utc/60))
when Numeric
if val < 0
val = self.ruby_to_cimdatetime( Time.at(val) )
else
secs = (val / 1000000).to_i
usecs = (val % 1000000).to_i
days = secs / (24 * 60 * 60)
secs = secs % (24 * 60 * 60)
hours = (secs / (60 * 60)).to_i
secs = secs % (60 * 60)
mins = (secs / 60).to_i
secs = secs % 60
val = "%08d%02d%02d%02d.%06d:000" % [ days, hours, mins, secs, usecs ]
end
when /^\d{14}\.\d{6}[-+:]\d{3}$/
when String
val = self.ruby_to_cimdatetime val.to_f
else
val = self.ruby_to_cimdatetime val.to_s
end
val
end