188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
# File 'lib/flydata/table_def/redshift_table_def.rb', line 188
def self.parse_timestamp(value)
if value.kind_of?(Integer) or /^\d+$/ === value
t = DateTime.strptime(value.to_s, '%s')
elsif APACHE_TIMESTAMP_REGEXP.match(value)
t = DateTime.strptime(value, "[%d/%b/%Y:%H:%M:%S %Z]")
else
t = DateTime.parse(value)
end
t = t.new_offset(0)
t.strftime('%Y-%m-%d %H:%M:%S.%6N')
rescue ArgumentError => ae
if value.start_with?('0000-00-00 00:00:00')
return '0001-01-01 00:00:00.000000'
else
raise ae
end
end
|