从不同的操作系统中得到不同格式的时间如2005/03/08 17:30、2005-03-08 5:30 PM,怎样才能转换成标准的格式啊?

解决方案 »

  1.   

    呵呵,使用CString直接Format成你认为是标准的格式!GetYear等等。
      

  2.   

    可以用GetYear把年月日等取出来,然后自己组成统一的格式
      

  3.   

    看看这段代码: 
    Example/* TIMES.C illustrates various time and date functions including:
     *      time            _ftime          ctime       asctime
     *      localtime       gmtime          mktime      _tzset
     *      _strtime        _strdate        strftime
     *
     * Also the global variable:
     *      _tzname
     */#include <time.h>
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/timeb.h>
    #include <string.h>void main()
    {
        char tmpbuf[128], ampm[] = "AM";
        time_t ltime;
        struct _timeb tstruct;
        struct tm *today, *gmt, xmas = { 0, 0, 12, 25, 11, 93 };    /* Set time zone from TZ environment variable. If TZ is not set,
         * the operating system is queried to obtain the default value 
         * for the variable. 
         */
        _tzset();    /* Display operating system-style date and time. */
        _strtime( tmpbuf );
        printf( "OS time:\t\t\t\t%s\n", tmpbuf );
        _strdate( tmpbuf );
        printf( "OS date:\t\t\t\t%s\n", tmpbuf );    /* Get UNIX-style time and display as number and string. */
        time( &ltime );
        printf( "Time in seconds since UTC 1/1/70:\t%ld\n", ltime );
        printf( "UNIX time and date:\t\t\t%s", ctime( &ltime ) );    /* Display UTC. */
        gmt = gmtime( &ltime );
        printf( "Coordinated universal time:\t\t%s", asctime( gmt ) );    /* Convert to time structure and adjust for PM if necessary. */
        today = localtime( &ltime );
        if( today->tm_hour > 12 )
        {
       strcpy( ampm, "PM" );
       today->tm_hour -= 12;
        }
        if( today->tm_hour == 0 )  /* Adjust if midnight hour. */
       today->tm_hour = 12;    /* Note how pointer addition is used to skip the first 11 
         * characters and printf is used to trim off terminating 
         * characters.
         */
        printf( "12-hour time:\t\t\t\t%.8s %s\n",
           asctime( today ) + 11, ampm );    /* Print additional time information. */
        _ftime( &tstruct );
        printf( "Plus milliseconds:\t\t\t%u\n", tstruct.millitm );
        printf( "Zone difference in seconds from UTC:\t%u\n", 
                 tstruct.timezone );
        printf( "Time zone name:\t\t\t\t%s\n", _tzname[0] );
        printf( "Daylight savings:\t\t\t%s\n", 
                 tstruct.dstflag ? "YES" : "NO" );    /* Make time for noon on Christmas, 1993. */
        if( mktime( &xmas ) != (time_t)-1 )
       printf( "Christmas\t\t\t\t%s\n", asctime( &xmas ) );    /* Use time structure to build a customized time string. */
        today = localtime( &ltime );    /* Use strftime to build a customized time string. */
        strftime( tmpbuf, 128,
             "Today is %A, day %d of %B in the year %Y.\n", today );
        printf( tmpbuf );
    }OutputOS time:                                21:51:03
    OS date:                                05/03/94
    Time in seconds since UTC 1/1/70:       768027063
    UNIX time and date:                     Tue May 03 21:51:03 1994
    Coordinated universal time:             Wed May 04 04:51:03 1994
    12-hour time:                           09:51:03 PM
    Plus milliseconds:                      279
    Zone difference in seconds from UTC:    480
    Time zone name:                         
    Daylight savings:                       YES
    Christmas                               Sat Dec 25 12:00:00 1993Today is Tuesday, day 03 of May in the year 1994.
      

  4.   

    得到系统时间日期(使用GetLocalTime)
     CString sTime,sYear,sMonth,sDay;
     SYSTEMTIME CurTime;
     GetLocalTime(&CurTime);
     sYear.Format("%d年",CurTime.wYear);
     sMonth.Format("%d月",CurTime.wMonth);
     sDay.Format("%d日",CurTime.wDay);
     sTime =  sYear+ sMonth + sDay;
      // CurTime.wHour
      // CurTime.wMinute
      // CurTime.wSecond IBM的
     AfxMessageBox(sTime);
    你可以Format成你想要的格式
      

  5.   

    Cstring Timestr = CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S");