相关疑难解决方法(0)

如何用win32 API转换时区?

我有日期字符串,如2009-02-28 15:40:05 AEDST,并希望将其转换为SYSTEMTIME结构.到目前为止,我有:

SYSTEMTIME st;
FILETIME ft;
SecureZeroMemory(&st, sizeof(st));
sscanf_s(contents, "%u-%u-%u %u:%u:%u",
    &st.wYear,
    &st.wMonth,
    &st.wDay,
    &st.wHour,
    &st.wMinute,
    &st.wSecond);
// Timezone correction
SystemTimeToFileTime(&st,  &ft);
LocalFileTimeToFileTime(&ft, &ft);
FileTimeToSystemTime(&ft, &st);
Run Code Online (Sandbox Code Playgroud)

但是我的当地时区不是AEDST.所以我需要能够在转换为UTC时指定时区.

c windows winapi

5
推荐指数
1
解决办法
7537
查看次数

如何在Windows下获取时区缩写

我们正试图从获得的时区std::tmstrftime

char timezone[50];
strftime(timezone, sizeof(timezone), "%Z", &timeCreated);
Run Code Online (Sandbox Code Playgroud)

在iOS上,我们得到的是“ EST”。但是在Windows上,我们会收到“东部夏令时”。有人知道如何以缩写形式一致地获取C ++中的当前时区吗?

我考虑通过简单地选择每个单词中的第一个字符来在时区的全名中进行缩写。但是我检查了缩写词的列表,并注意到我们可以使用像“ Chuuk Time”这样的时区并将其缩写为“ CHUT”。这使得无法进行手动调整。


与问题:Windows时区及其缩写不同?我不需要所有时区和缩写的完整列表。但是,例如,我需要一种系统的方法来使用当前时区strftime。我希望他们使用系统的当前时区和当前本地时间。

c++ windows datetime

5
推荐指数
1
解决办法
1310
查看次数

标签 统计

windows ×2

c ×1

c++ ×1

datetime ×1

winapi ×1