Sha256: 8d12a5bba79344e3c3a53ef1a63aa5079ebec85f3351de94e10a591719165d26

Contents?: true

Size: 704 Bytes

Versions: 14

Compression:

Stored size: 704 Bytes

Contents

require 'time'
require 'date'
class Time
  #
  # Parses the time but never fails.
  # Return value is always in the UTC time zone.
  #
  # A flattened datetime -- a 14-digit YYYYmmddHHMMMSS -- is fixed to the UTC
  # time zone by parsing it as YYYYmmddHHMMMSSZ <- 'Z' at end
  #
  def self.parse_safely dt
    return nil if dt.nil? || (dt.respond_to?(:empty) && dt.empty?)
    begin
      case
      when dt.is_a?(Time)               then dt.utc
      when (dt.to_s =~ /\A\d{14}\z/)    then parse(dt.to_s+'Z', true)
      else                                   parse(dt.to_s,     true).utc
      end
    rescue StandardError => e
      Log.debug e
    end
  end unless method_defined?(:parse_safely)
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
gorillib-0.4.0pre lib/gorillib/datetime/parse.rb
gorillib-0.4.1pre lib/gorillib/datetime/parse.rb
gorillib-0.1.11 lib/gorillib/datetime/parse.rb
gorillib-0.1.9 lib/gorillib/datetime/parse.rb
gorillib-0.1.8 lib/gorillib/datetime/parse.rb
gorillib-0.1.7 lib/gorillib/datetime/parse.rb
gorillib-0.1.6 lib/gorillib/datetime/parse.rb
gorillib-0.1.5 lib/gorillib/datetime/parse.rb
gorillib-0.1.4 lib/gorillib/datetime/parse.rb
gorillib-0.1.3 lib/gorillib/datetime/parse.rb
gorillib-0.1.2 lib/gorillib/datetime/parse.rb
gorillib-0.1.1 lib/gorillib/datetime/parse.rb
gorillib-0.1.0 lib/gorillib/datetime/parse.rb
gorillib-0.0.8 lib/gorillib/datetime/parse.rb