method
screen_data_str
v1_8_7_330 -
Show latest stable
- Class:
XSD::XSDDateTime
screen_data_str(t)private
No documentation available.
# File lib/xsd/datatypes.rb, line 597
def screen_data_str(t)
/^([+\-]?\d{4,})-(\d\d)-(\d\d)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
if $1 == '0000'
raise ValueSpaceError.new("#{ type }: cannot accept '#{ t }'.")
end
year = $1.to_i
if year < 0
year += 1
end
mon = $2.to_i
mday = $3.to_i
hour = $4.to_i
min = $5.to_i
sec = $6.to_i
secfrac = $7
zonestr = $8
data = DateTime.civil(year, mon, mday, hour, min, sec, tz2of(zonestr))
if secfrac
diffday = secfrac.to_i.to_r / (10 ** secfrac.size) / SecInDay
data += diffday
# FYI: new0 and jd_to_rjd are not necessary to use if you don't have
# exceptional reason.
end
[data, secfrac]
end