diff --git a/Telegram/SourceFiles/export/data/export_data_types.cpp b/Telegram/SourceFiles/export/data/export_data_types.cpp index f8901709b..a1a519cad 100644 --- a/Telegram/SourceFiles/export/data/export_data_types.cpp +++ b/Telegram/SourceFiles/export/data/export_data_types.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/mime_type.h" #include "core/utils.h" #include +#include #include #include #include @@ -30,7 +31,7 @@ constexpr auto kMigratedMessagesIdShift = -1'000'000'000; QString PrepareFileNameDatePart(TimeId date) { return date - ? ('@' + QString::fromUtf8(FormatDateTime(date, '-', '-', '_'))) + ? ('@' + QString::fromUtf8(FormatDateTime(date, 0, '-', '-', '_'))) : QString(); } @@ -1811,6 +1812,7 @@ Utf8String FormatPhoneNumber(const Utf8String &phoneNumber) { Utf8String FormatDateTime( TimeId date, + bool hasTimeZone, QChar dateSeparator, QChar timeSeparator, QChar separator) { @@ -1818,14 +1820,21 @@ Utf8String FormatDateTime( return Utf8String(); } const auto value = QDateTime::fromSecsSinceEpoch(date); + const auto timeZoneOffset = hasTimeZone + ? separator + value.timeZone().displayName( + QTimeZone::StandardTime, + QTimeZone::OffsetName) + : QString(); return (QString("%1") + dateSeparator + "%2" + dateSeparator + "%3" + separator + "%4" + timeSeparator + "%5" + timeSeparator + "%6" + + "%7" ).arg(value.date().day(), 2, 10, QChar('0') ).arg(value.date().month(), 2, 10, QChar('0') ).arg(value.date().year() ).arg(value.time().hour(), 2, 10, QChar('0') ).arg(value.time().minute(), 2, 10, QChar('0') ).arg(value.time().second(), 2, 10, QChar('0') + ).arg(timeZoneOffset ).toUtf8(); } diff --git a/Telegram/SourceFiles/export/data/export_data_types.h b/Telegram/SourceFiles/export/data/export_data_types.h index bf92fc8d3..3fba59a82 100644 --- a/Telegram/SourceFiles/export/data/export_data_types.h +++ b/Telegram/SourceFiles/export/data/export_data_types.h @@ -709,6 +709,7 @@ bool SkipMessageByDate(const Message &message, const Settings &settings); Utf8String FormatPhoneNumber(const Utf8String &phoneNumber); Utf8String FormatDateTime( TimeId date, + bool hasTimeZone = false, QChar dateSeparator = QChar('.'), QChar timeSeparator = QChar(':'), QChar separator = QChar(' ')); diff --git a/Telegram/SourceFiles/export/output/export_output_html.cpp b/Telegram/SourceFiles/export/output/export_output_html.cpp index d9334146b..4503926dc 100644 --- a/Telegram/SourceFiles/export/output/export_output_html.cpp +++ b/Telegram/SourceFiles/export/output/export_output_html.cpp @@ -1193,7 +1193,7 @@ auto HtmlWriter::Wrap::pushMessage( block.append(pushDiv("body")); block.append(pushTag("div", { { "class", "pull_right date details" }, - { "title", FormatDateTime(message.date) }, + { "title", FormatDateTime(message.date, true) }, })); block.append(FormatTimeText(message.date)); block.append(popTag()); @@ -1223,7 +1223,8 @@ auto HtmlWriter::Wrap::pushMessage( block.append(" via @" + via); } block.append(pushTag("span", { - { "class", "details" }, + { "class", "date details" }, + { "title", FormatDateTime(message.forwardedDate, true) }, { "inline", "" } })); block.append(' ' + FormatDateTime(message.forwardedDate));