value = this.fParser.decodeFloat(this.fStream.substr(this.fStreamPos, 8), 52, 11);
this.fStreamPos += 8;
value = new Date(Math.round((value - 25569.0) * 86400000));
DA treats date as floating number. Object date is created using miliseconds (UTC based), but floating value from the server is passed GMT-0300, so my date is incorrect in client js side (3 hours back).
Thank you for such a detailed report. Yes, values are stored in the db in UTC and client side should convert them to/from local timezone.
Issue is logged as #54154, fix will be provided asap.