- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个使用 mktime
转换为 UNIX time_t 的 struct tm
对象,当传递给 COleDateTime
的构造函数时,它似乎是添加一个小时以考虑夏令时(英国时间),即使 COleDateTime
的文档建议它忽略 DST。
如果我使用 SYSTEMTIME
创建时间并将该对象传递给 COleDateTime
,问题就会消失。有谁知道为什么会这样?这是来自遗留代码,因此将所有内容更改为 SYSTEMTIME
可能不是解决方案。
这是我的示例代码:
timeinfo.tm_year = 2018 - 1900;
timeinfo.tm_mon = 6 - 1;
timeinfo.tm_mday = 1;
timeinfo.tm_isdst = 0;
timeinfo.tm_hour = 10;
timeinfo.tm_min = 30;
timeinfo.tm_sec = 40;
auto unix = mktime( &timeinfo );
printf("UNIX time %lld\n", unix);
COleDateTime date(unix);
printf("COleDateTime: %f\n", date.m_dt);
CString res = date.Format();
printf("Formatted: %ls\n", res.GetString());
最佳答案
回答了我自己的问题:
COleDateTime
time_t
构造函数在内部使用 CTime
,无论 COleDateTime
的文档怎么说,是否考虑了语言环境和时区的环境变量。
关于c++ - COleDateTime 在使用 time_t 构造时增加一个小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53631788/
我在 MFC 中与 COleDateTime 战斗了几天。我有具有正确值的 CTime。正确的年、日、月、小时、分钟和秒。我尝试了几种将 CTime 转换为 COleDateTime 的方法: -1.
我正在将一个解决方案从 Visual c++ 6.0 迁移到 Visual Studio 2013。在解决了解决方案中的许多问题后,我在 windows sdk header afxdisp.h 中遇
我试图理解我在调用时遇到的 ASSERT COleDateTime time; this->m_wndDate.GetTime(time); 我的 datePicker 中的日期是 31/12/999
如何将 COleDateTime 转换为某种可以轻松转换回来的整数表示形式。 最佳答案 我认为最简单的方法是通过 COleDateTimeSpan 如下: // Create an epoch sta
我正在以 ColeDateTime 格式从数据库中读取日期时间。我想将它转换为 CTime 以获得日期月份年份和时间。 CString repDt; //**this will hold the da
美好的一天。 我必须使 C++ 项目与 Linux 兼容。在现有项目中,使用了一些旧的 MFC 函数。我正在寻找 COleDateTime 包装器的替代品。是否存在适用于 Linux 的替代对象,或者
我必须为我的一项作业更新一个旧的日期类,我卡在这个功能上,我必须重做。 如果操作可行,函数需要返回一个 bool 值。 我想做的是用 ColeDateTimeSpan 减去 ColeDateTime
我有一个使用 mktime 转换为 UNIX time_t 的 struct tm 对象,当传递给 COleDateTime 的构造函数时,它似乎是添加一个小时以考虑夏令时(英国时间),即使 COle
我想从 COleDateTime 对象中获取年份和月份,并且希望它尽可能快。我有 2 个选择; COleDateTime my_date_time; int year = my_date_time.G
Javascript 调用 COM 接口(interface)。我想将 Date() 转换为 COleDateTime(ATLCOM) 或 DATE。还是其他方法? //通信接口(interface)
这是我的方法定义: IMSAToolsLibraryInterface : IUnknown { // // Raw methods provided by interface
我需要解析美国日期字符串以提取日期。 COleDateTime dData; LCID lcid = 0x409; // 0x409 is the locale ID for English
我有一个旧库,它使用 COleDateTime 作为 C++ MFC Dll 中的返回类型。当我执行 PInvoke 时,我能否自信地将其编码为 DateTime 对象?或者我应该做一些古怪的事情,比
我有这种方法可以将语言环境设置为波兰语: void CMeetingScheduleAssistantApp::SetLocale() { // https://www.microsoft.c
我有一个 COleDateTime 对象,我想解析 YYYY-MM-DD 格式的日期字符串。 例如,字符串变量是: std::string strDate = "2022-07-04"; COleDa
我是一名优秀的程序员,十分优秀!