【问题标题】:Getting System Date in MSVC 6.0在 MSVC 6.0 中获取系统日期
【发布时间】:2008-10-13 10:39:41
【问题描述】:

我正在尝试在 MSVC++ 6.0 编译器上的 C 程序中获取系统日期。我正在使用系统调用:

system("date /T")(输出例如 08 年 10 月 13 日,这是我系统上的日期,采用我设置的格式)

但这会将日期打印到 i/o 控制台。

如何将上述系统调用返回的日期作为字符串值存储到我的代码中定义的字符串中? 或者

我可以使用任何其他 API 来获取上述格式的日期(13-Oct-08 或 13-10-08)吗?

-AD

【问题讨论】:

    标签: windows date system


    【解决方案1】:
    #include <windows.h>
    #include <iostream>
    
    int main() {
    
      SYSTEMTIME systmDateTime = {};
      ::GetLocalTime(&systmDateTime);
    
      wchar_t wszDate[64] = {};
      int const result = ::GetDateFormatW(
        LOCALE_USER_DEFAULT, DATE_SHORTDATE,
        &systmDateTime, 0, wszDate, _countof(wszDate));
    
      if (result) {
        std::wcout << wszDate;
      }
    }
    

    【讨论】:

      【解决方案2】:

      使用 API 函数有几种方法可以做到这一点,其中两个是strftimeGetDateFormat

      我想提供一些示例,但恐怕我目前手边没有 Win32 编译器。希望以上文档中的示例就足够了。

      【讨论】:

        【解决方案3】:

        阅读Win32 Time functions; GetLocalTime 可能是你的朋友。还有标准的 C 时间函数 time 和 strftime。

        为了将来参考,在 C 程序中,调用外部实用程序并捕获它的 STDOUT 几乎总是错误的答案。

        【讨论】:

          【解决方案4】:

          感谢指点。

          我使用了它,它达到了我的目的:

          #include <time.h>
          #include <stdio.h>
          #include <sys/types.h>
          #include <sys/timeb.h>
          #include <string.h>
              int main()
          
              {  
          
                  char tmpbuf[128];
          
                  time_t ltime;
          
                  struct tm *today;
          
                  _strdate( tmpbuf );
                  printf("\n before formatting date is %s",tmpbuf);  
          
                  time(&ltime);
                  today = localtime( &ltime );
          
                  strftime(tmpbuf,128,"%d-%m-%y",today);
                  printf( "\nafter formatting date is %s\n", tmpbuf );
          
              }
          

          -AD

          【讨论】:

            猜你喜欢
            • 2018-06-07
            • 2013-08-23
            • 2013-04-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多