【问题标题】:C++ MFC Get current date and timeC++ MFC 获取当前日期和时间
【发布时间】:2011-10-18 13:23:24
【问题描述】:

在我的大部分编程生涯中,我一直在使用 VB.NET 进行编程。我有一个提供给我的 C++ 项目,我需要对其进行一些修改,我感到绝望和迷茫。

它是 C++ 中的 Visual Studio 2008 MFC 项目。

已定义输出变量:

char szout[900];

下面这一行,用于在输出之前将值附加到输出变量:

strcpy(szout, "TextHere")

因此,我尝试过的众多搜索示例之一是包含在顶部:

#include <windows.h>

然后是我的代码:

SYSTEMTIME st;
GetSystemTime(&st);
char myDate[20] = st;
CT2CA outputDate(myDate);
strcat(szout, outputDate);

由于某种原因,附加到 szout 的变量必须是 CT2CA 类型,我也不确定这是什么。

但随后我在第二行和第三行 (char myDate...etc...) 和 (CT2CA output....etc...) 收到以下错误

error C2440: 'initializing' : cannot convert from 'SYSTEMTIME' to 'char [20]'

error C2664: 'ATL::CW2AEX<>::CW2AEX(LPCWSTR) throw(...)' : cannot convert parameter 1 from 'char [20]' to 'LPCWSTR'

所以我要澄清一下,我是一个完全新手,并希望得到任何帮助。

谢谢,

【问题讨论】:

    标签: c++ date mfc time


    【解决方案1】:

    在 MFC 中,以下代码用于 MMDDYYYY 格式的当前日期。

    CTime t = CTime::GetCurrentTime();
    CString s = t.Format("%m%d%Y");
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 MFC,为什么不呢:

      // uses printf() format specifications for time
      CString t = CTime::GetCurrentTime().Format("%H:%M");
      
      // Or, if you have OLE Support
      CString t = COleDateTime::GetCurrentTime().Format("%H:%M");
      

      【讨论】:

      • 如果我不包含任何一行,项目构建不会出错。包括第一个选项会给出此错误:错误 C2664: 'CString ATL::CTime::Format(LPCTSTR) const' : cannot convert parameter 1 from 'const char [6]' to 'LPCTSTR' ------ 包括第二个选项给出了这个错误:error C2664: 'CString ATL::COleDateTime::Format(DWORD,LCID) const' : cannot convert parameter 1 from 'const char [6]' to 'DWORD'
      • 另外,如果我把 .Format(0, "%H:%M"); ,它摆脱了DWORD转换错误..但随后为参数2生成了一个新错误,它无法转换为LCID。
      • 抱歉这么多 cmets =\... 如果我从 .Format 方法中删除所有参数,那么它可以编译。但我仍然希望能够按照您显示的那样进行格式化。
      • @Adam LPCTSTR 的意思是“指向常量字符串的长指针”,这意味着你在 Windows Unicode 领域。将其更改为 .Format(L"%H:%M") 可能会为您解决问题,但我本人从未真正了解此类事情的最佳实践是什么。这可能会有所启发:codeproject.com/KB/string/cppstringguide2.aspx
      • 我会说 Joel Spolsky 认为这是每个程序员都应该知道的关于 Unicode 的最低限度:joelonsoftware.com/articles/Unicode.html
      猜你喜欢
      • 2012-12-04
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 2015-03-22
      • 2011-01-01
      • 1970-01-01
      相关资源
      最近更新 更多