[Interest] QTableView, QSqlRelationalTableModel and QDateTimeEdit and timezones

Tony Rietwyk tony at rightsoft.com.au
Fri May 1 06:59:46 CEST 2020


Hi Lisandro,

AFAIK that is a bug in the design of the Qt SQL api's.  There is no way 
to specify to QSqlField/QSqlResult that the date being read is UTC.  You 
have to read the QSqlQuery yourself, convert the QVariant to QDateTime, 
apply the time spec, then pass the value to the UI.

Maybe you can derive from QSqlRelationalTableModel and override the data 
method to set the time spec?

Regards, Tony


On 1/05/2020 5:04 am, Lisandro Damián Nicanor Pérez Meyer wrote:
> Hi!
>
> I have a database (PostgreSql) with a table that holds date/time in
> UTC. I've read this table with the QSqlRelationalTableModel and show
> the data with a QTableView and a QDateTimeEdit.
>
> I would like both the QTableView and the QDateEdit to show the time in
> local timezone, but I seem to be failing at this.
>
> I have tried with
> ui->admissionDateTimeEdit->setTimeSpec(Qt::OffsetFromUTC) and other
> time specs both before and after setting the model without success
> (there is a bug for that in [1])
>
> Is there something else I am missing?
>
> The actual code is in [2] but it's not minimal. If needed I'll try to
> get a minimal example for this.
>
> [1] <https://bugreports.qt.io/browse/QTBUG-54781>
> [2] <https://gitlab.com/mosimpa/abm/-/blob/feature/manage-internments/src/internmentsform.cpp>
>
> Thanks in advance!
>


More information about the Interest mailing list