method
screen_data_str
v1_8_7_72 -
Show latest stable
- Class:
XSD::XSDTime
screen_data_str(t)private
No documentation available.
# File lib/xsd/datatypes.rb, line 660
def screen_data_str(t)
/^(\d\d):(\d\d):(\d\d(?:\.(\d*))?)(Z|(?:([+\-])(\d\d):(\d\d))?)?$/ =~ t.to_s.strip
unless Regexp.last_match
raise ValueSpaceError.new("#{ type }: cannot accept '#{ t }'.")
end
hour = $1.to_i
min = $2.to_i
sec = $3.to_i
secfrac = $4
zonestr = $5
data = DateTime.civil(1, 1, 1, hour, min, sec, tz2of(zonestr))
if secfrac
diffday = secfrac.to_i.to_r / (10 ** secfrac.size) / SecInDay
data += diffday
end
[data, secfrac]
end