生成年月日格式时间(20位,精确到us)

直接上代码:

#include
#include
#include
#include
#include
#include

using namespace std;

struct stSignDate
{
    int     year;
    int     month;
    int     day;
    int     week;
    int     weeks;  // 一年的第几周
    time_t  ts;
    string  format;
};

void formatSignDate(stSignDate& signDate);

int main()
{
   for(int i=0; i<5;++i)
{
    stSignDate signDate;
    formatSignDate(signDate);

    cout< }
    return 0;
}

void formatSignDate(stSignDate& signDate)
{
    time_t rawtime;
    struct tm * timeinfo;
    char timebuf[80];

    time(&rawtime);

    timeinfo = localtime(&rawtime);

    signDate.ts = rawtime;

    memset(timebuf, 0, sizeof(timebuf));

    if (strftime(timebuf, sizeof(timebuf), "%W", timeinfo) != 0) {
        signDate.weeks = atoi(timebuf);
    }


    memset(timebuf, 0, sizeof(timebuf));

    if (strftime(timebuf, sizeof(timebuf), "%u", timeinfo) != 0) {
        signDate.week = atoi(timebuf);
    }

    signDate.year = timeinfo->tm_year + 1900;
    signDate.month = timeinfo->tm_mon + 1;
    signDate.day = timeinfo->tm_mday;

    struct timeval tv;
    gettimeofday(&tv, 0);

    char buf[30];
    snprintf(buf, sizeof(buf),"%d%02d%02d%02d%02d%02d%06ld", signDate.year, signDate.month, signDate.day, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec, tv.tv_usec);
    signDate.format = buf;
}

你可能感兴趣的:(生成年月日格式时间(20位,精确到us))