module HL7Time

Public Instance Methods

to_hl7( fraction_digits = 0) click to toggle source

Get a HL7 timestamp (type TS) for a Time instance.

fraction_digits

specifies a number of digits of fractional seconds. Its default value is 0.

Time.parse('01:23').to_hl7
=> "20091202012300"
Time.now.to_hl7(3)
=> "20091202153652.302"
# File lib/core_ext/date_time.rb, line 10
def to_hl7( fraction_digits = 0)
  strftime('%Y%m%d%H%M%S') + hl7_fractions(fraction_digits)
end

Private Instance Methods

hl7_fractions(fraction_digits = 0) click to toggle source
# File lib/core_ext/date_time.rb, line 15
def hl7_fractions(fraction_digits = 0)
  return '' unless fraction_digits > 0
  time_fraction =  hl7_time_fraction
  answer = ".#{sprintf('%06d', time_fraction)}"
  answer += '0' * ((fraction_digits - 6)).abs if fraction_digits > 6
  answer[0, 1 + fraction_digits]
end
hl7_time_fraction() click to toggle source
# File lib/core_ext/date_time.rb, line 23
def hl7_time_fraction
  if respond_to? :usec
    usec
  else
    sec_fraction.to_f * 1000000
  end
end