From a568a1ca048a325f3a713f15c9be3762420b686b Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Thu, 4 Dec 2025 11:55:52 +0100 Subject: [PATCH] Timestamps: Emit in UTC --- .changeset/rare-cobras-post.md | 5 +++++ lib/datetime_decode.js | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 .changeset/rare-cobras-post.md diff --git a/.changeset/rare-cobras-post.md b/.changeset/rare-cobras-post.md new file mode 100644 index 0000000..1aa1af5 --- /dev/null +++ b/.changeset/rare-cobras-post.md @@ -0,0 +1,5 @@ +--- +'@powersync/mysql-zongji': minor +--- + +When the option to render timestamps as strings is enabled, unconditionally emit those values in UTC for consistency. diff --git a/lib/datetime_decode.js b/lib/datetime_decode.js index c7bb56e..04fe8d5 100644 --- a/lib/datetime_decode.js +++ b/lib/datetime_decode.js @@ -99,14 +99,15 @@ exports.getTimeStamp = function ( if (secondsFromEpoch === 0 && (!fraction || fraction.value === 0)) { return '0000-00-00 00:00:00' + getFractionString(fraction); } + return ( - getDateString(dateObject.getFullYear(), dateObject.getMonth() + 1, dateObject.getDate()) + + getDateString(dateObject.getUTCFullYear(), dateObject.getUTCMonth() + 1, dateObject.getUTCDate()) + ' ' + - common.zeroPad(dateObject.getHours(), 2) + + common.zeroPad(dateObject.getUTCHours(), 2) + ':' + - common.zeroPad(dateObject.getMinutes(), 2) + + common.zeroPad(dateObject.getUTCMinutes(), 2) + ':' + - common.zeroPad(dateObject.getSeconds(), 2) + + common.zeroPad(dateObject.getUTCSeconds(), 2) + getFractionString(fraction) ); };