Module: ActiveRecordConnectionTz::TemporalFormatter

Defined in:
lib/active_record_connection_tz/temporal_formatter.rb

Class Method Summary collapse

Class Method Details

.quoted_date(value, time_zone:) ⇒ Object

: (Time | DateTime | ActiveSupport::TimeWithZone value, time_zone: ActiveSupport::TimeZone) -> String



7
8
9
10
11
12
13
# File 'lib/active_record_connection_tz/temporal_formatter.rb', line 7

def quoted_date(value, time_zone:)
  zoned = value.in_time_zone(time_zone)
  result = zoned.strftime('%Y-%m-%d %H:%M:%S')
  return "#{result}.#{format('%06d', zoned.usec)}" if zoned.usec.positive?

  result
end

.quoted_time(value, time_zone:) ⇒ Object

: (Time | DateTime | ActiveSupport::TimeWithZone value, time_zone: ActiveSupport::TimeZone) -> String



16
17
18
19
# File 'lib/active_record_connection_tz/temporal_formatter.rb', line 16

def quoted_time(value, time_zone:)
  # Use the same stable anchor date ActiveRecord::Type::Time conventionally relies on for TIME values.
  quoted_date(value.change(year: 2000, month: 1, day: 1), time_zone: time_zone).sub(/\A\d{4}-\d{2}-\d{2} /, '')
end