mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Fix time-string format in backend for GncDateTime(std::string).
Also provide a simple test of that ctor.
This commit is contained in:
parent
43df1ccc3a
commit
e9ac71c0f9
@ -393,7 +393,13 @@ GncSqlColumnTableEntryImpl<CT_TIMESPEC>::load (const GncSqlBackend* sql_be,
|
||||
{
|
||||
try
|
||||
{
|
||||
constexpr size_t datelen = 14;
|
||||
auto val = row.get_string_at_col(m_col_name);
|
||||
if (val.length() == datelen)
|
||||
val = std::string(val.substr(0, 4) + "-" + val.substr(4, 2) +
|
||||
"-" + val.substr(6, 2) + " " +
|
||||
val.substr(8, 2) + ":" + val.substr(10, 2) +
|
||||
":" + val.substr(12, 2));
|
||||
GncDateTime time(val);
|
||||
ts.tv_sec = static_cast<time64>(time);
|
||||
}
|
||||
|
@ -259,6 +259,19 @@ TEST(gnc_datetime_constructors, test_time64_constructor)
|
||||
EXPECT_EQ(static_cast<time64>(atime), time);
|
||||
}
|
||||
|
||||
TEST(gnc_datetime_constructors, test_string_constructor)
|
||||
{
|
||||
std::string timestr("2015-12-05 00:01:00");
|
||||
GncDateTime time(timestr);
|
||||
auto tm = time.utc_tm();
|
||||
EXPECT_EQ(tm.tm_year, 115);
|
||||
EXPECT_EQ(tm.tm_mon, 11);
|
||||
EXPECT_EQ(tm.tm_mday, 5);
|
||||
EXPECT_EQ(tm.tm_hour, 0);
|
||||
EXPECT_EQ(tm.tm_min, 1);
|
||||
EXPECT_EQ(tm.tm_sec, 0);
|
||||
}
|
||||
|
||||
TEST(gnc_datetime_constructors, test_struct_tm_constructor)
|
||||
{
|
||||
#ifdef HAVE_STRUCT_TM_GMTOFF
|
||||
|
Loading…
Reference in New Issue
Block a user