diff --git a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp index 583e8a855..c99a2bc24 100644 --- a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp +++ b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp @@ -139,7 +139,7 @@ std::shared_ptr ConferenceInfoModel::findConferenceInf //------------------------------------------------------------------------------------------------ - +//Note conferenceInfo->getDateTime uses system timezone. QDateTime ConferenceInfoModel::getDateTimeUtc() const{ return QDateTime::fromMSecsSinceEpoch(mConferenceInfo->getDateTime() * 1000).toUTC(); } diff --git a/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml b/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml index 4f8be65ec..febc5c715 100644 --- a/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml +++ b/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml @@ -111,7 +111,8 @@ Loader{ color: ChatCalendarMessageStyle.schedule.color elide: Text.ElideRight font.pointSize: ChatCalendarMessageStyle.schedule.pointSize - text: Qt.formatDateTime(mainItem.conferenceInfoModel.dateTime, 'hh:mm') +// Reminder: QML use locale time (not system). Use UTC from C++ => convert it into QML => pass QML => convert it into UTC and apply our timezone. + text: UtilsCpp.toTimeString(Utils.fromUTC(mainItem.conferenceInfoModel.dateTimeUtc), 'hh:mm') + (mainItem.conferenceInfoModel.duration > 0 ? ' (' +Utils.formatDuration(mainItem.conferenceInfoModel.duration * 60) + ')' : '') } diff --git a/linphone-app/ui/modules/Linphone/Chat/ChatConferenceInvitationMessage.qml b/linphone-app/ui/modules/Linphone/Chat/ChatConferenceInvitationMessage.qml index e9820c144..d0b487a3d 100644 --- a/linphone-app/ui/modules/Linphone/Chat/ChatConferenceInvitationMessage.qml +++ b/linphone-app/ui/modules/Linphone/Chat/ChatConferenceInvitationMessage.qml @@ -158,7 +158,7 @@ Loader{ color: ChatCalendarMessageStyle.schedule.color elide: Text.ElideRight font.pointSize: Units.dp * 8 - text: Qt.formatDate(mainItem.conferenceInfoModel.dateTimeUtc, 'yyyy/MM/dd') + text: UtilsCpp.toDateString(Utils.fromUTC(mainItem.conferenceInfoModel.dateTimeUtc), 'yyyy/MM/dd') } } RowLayout { @@ -182,7 +182,8 @@ Loader{ color: ChatCalendarMessageStyle.schedule.color elide: Text.ElideRight font.pointSize: Units.dp * 8 - text: Qt.formatDateTime(mainItem.conferenceInfoModel.dateTimeUtc, 'hh:mm') +// Reminder: QML use locale time (not system). Use UTC from C++ => convert it into QML => pass QML => convert it into UTC and apply our timezone. + text: UtilsCpp.toTimeString( Utils.fromUTC(mainItem.conferenceInfoModel.dateTimeUtc), 'hh:mm') + (mainItem.conferenceInfoModel.duration > 0 ? ' ('+Utils.formatDuration(mainItem.conferenceInfoModel.duration * 60) + ')' : '') } diff --git a/linphone-app/ui/scripts/Utils/utils.js b/linphone-app/ui/scripts/Utils/utils.js index dc4e2f202..d82ed2452 100644 --- a/linphone-app/ui/scripts/Utils/utils.js +++ b/linphone-app/ui/scripts/Utils/utils.js @@ -562,6 +562,14 @@ function buildDate(date, time){ dateTime.setSeconds(time.getSeconds()) return dateTime } + + +function fromUTC(date){ + return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), + date.getUTCDate(), date.getUTCHours(), + date.getUTCMinutes(), date.getUTCSeconds())); +} + // ----------------------------------------------------------------------------- function formatSize (size) {