C ++ Poco Epoch(Unix)时间转换为LocalTime字符串

时间:2017-05-09 23:39:36

标签: c++ datetime poco unix-timestamp epoch

我有一个Epoch(Unix)时间的字符串。 需要将其转换为具有本地时间的字符串。 代码bellow工作,但给我UTC时间,而不是本地。 09-05-2017 21:55:44

using Poco::Timestamp;
using Poco::DateTimeFormatter;

Timestamp timeStamp;
timeStamp = Timestamp::fromEpochTime(jrnTime);
timeFormatted = DateTimeFormatter::format(timeStamp, "%d-%m-%Y %H:%M:%S");

2 个答案:

答案 0 :(得分:1)

您可以使用 Poco::LocalDateTimePoco::DateTimetzd 转换为本地日期时间。

答案 1 :(得分:0)

不需要为此目的使用Poco。

#include <ctime>
using std::time_t;
using std::wstring;
using std::string;

string TimeStamp(time_t rawtime) {
    char buffer[80];
    struct tm timeinfo;
    localtime_s(&timeinfo, &rawtime);
    strftime(buffer, sizeof(buffer), "%d-%m-%Y %H:%M:%S", &timeinfo);
    return string(buffer);
}

wstring TimeStampW(time_t rawtime) {
    wchar_t buffer[80];
    struct tm timeinfo;
    localtime_s(&timeinfo, &rawtime);
    wcsftime(buffer, sizeof(buffer), L"%d-%m-%Y %H:%M:%S", &timeinfo);
    return wstring(buffer);
}
相关问题