class Lutaml::Model::Type::Time

def self.cast(value)

def self.cast(value)
  return value if value.nil? || Utils.uninitialized?(value)
  case value
  when ::Time then value
  when ::DateTime then value.to_time
  else ::Time.parse(value.to_s)
  end
rescue ArgumentError
  nil
end

def self.serialize(value)

def self.serialize(value)
  return value if value.nil? || Utils.uninitialized?(value)
  value = cast(value)
  # value&.strftime("%Y-%m-%dT%H:%M:%S%:z")
  value&.iso8601
end

def to_xml

# xs:time format (HH:MM:SS.mmm±HH:MM)
def to_xml
  value&.iso8601
end

def to_yaml

YAML timestamp format (native)
def to_yaml
  value&.iso8601
end