From c1f214d6952bfc5515c137af19c05f041df1575b Mon Sep 17 00:00:00 2001 From: "Brian J. Cardiff" Date: Mon, 18 Jun 2018 10:26:32 +0200 Subject: [PATCH] Upgrade time usage for crystal 0.25.0 (#34) --- spec/db_spec.cr | 5 +++-- src/sqlite3.cr | 3 +++ src/sqlite3/result_set.cr | 4 ++-- src/sqlite3/statement.cr | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/spec/db_spec.cr b/spec/db_spec.cr index d8c0b01..55f5c4e 100644 --- a/spec/db_spec.cr +++ b/spec/db_spec.cr @@ -33,8 +33,9 @@ DB::DriverSpecs(DB::Any).run do sample_value "hello", "text", "'hello'" sample_value 1.5_f32, "float", "1.5", type_safe_value: false sample_value 1.5, "float", "1.5" - sample_value Time.new(2016, 2, 15), "text", "'2016-02-15 00:00:00.000'", type_safe_value: false - sample_value Time.new(2016, 2, 15, 10, 15, 30), "text", "'2016-02-15 10:15:30.000'", type_safe_value: false + sample_value Time.utc(2016, 2, 15), "text", "'2016-02-15 00:00:00.000'", type_safe_value: false + sample_value Time.utc(2016, 2, 15, 10, 15, 30), "text", "'2016-02-15 10:15:30.000'", type_safe_value: false + sample_value Time.new(2016, 2, 15, 7, 15, 30, location: Time::Location.fixed("fixed", -3*3600)), "text", "'2016-02-15 10:15:30.000'", type_safe_value: false ary = UInt8[0x53, 0x51, 0x4C, 0x69, 0x74, 0x65] sample_value Bytes.new(ary.to_unsafe, ary.size), "blob", "X'53514C697465'" # , type_safe_value: false diff --git a/src/sqlite3.cr b/src/sqlite3.cr index a5b49c4..77ff98f 100644 --- a/src/sqlite3.cr +++ b/src/sqlite3.cr @@ -3,4 +3,7 @@ require "./sqlite3/**" module SQLite3 DATE_FORMAT = "%F %H:%M:%S.%L" + + # :nodoc: + TIME_ZONE = Time::Location::UTC end diff --git a/src/sqlite3/result_set.cr b/src/sqlite3/result_set.cr index 9a886f1..ce116db 100644 --- a/src/sqlite3/result_set.cr +++ b/src/sqlite3/result_set.cr @@ -64,11 +64,11 @@ class SQLite3::ResultSet < DB::ResultSet end def read(t : Time.class) : Time - Time.parse read(String), SQLite3::DATE_FORMAT + Time.parse read(String), SQLite3::DATE_FORMAT, location: SQLite3::TIME_ZONE end def read(t : Time?.class) : Time? - read(String?).try { |v| Time.parse(v, SQLite3::DATE_FORMAT) } + read(String?).try { |v| Time.parse(v, SQLite3::DATE_FORMAT, location: SQLite3::TIME_ZONE) } end def read(t : Bool.class) : Bool diff --git a/src/sqlite3/statement.cr b/src/sqlite3/statement.cr index 510da04..c5dc619 100644 --- a/src/sqlite3/statement.cr +++ b/src/sqlite3/statement.cr @@ -70,7 +70,7 @@ class SQLite3::Statement < DB::Statement end private def bind_arg(index, value : Time) - bind_arg(index, value.to_s(SQLite3::DATE_FORMAT)) + bind_arg(index, value.in(SQLite3::TIME_ZONE).to_s(SQLite3::DATE_FORMAT)) end private def bind_arg(index, value)