Esempio n. 1
0
tb_bool_t tb_localtime(tb_time_t time, tb_tm_t* tm)
{
#ifdef TB_CONFIG_LIBC_HAVE_LOCALTIME
    // localtime
    time_t t = (time_t)time;
    struct tm* ptm = localtime(&t);
    if (ptm && tm)
    {
        tm->second = ptm->tm_sec;
        tm->minute = ptm->tm_min;
        tm->hour = ptm->tm_hour;
        tm->mday = ptm->tm_mday;
        tm->month = ptm->tm_mon + 1;
        tm->year = ptm->tm_year + 1900;
        tm->week = ptm->tm_wday;
        tm->yday = ptm->tm_yday;
        tm->isdst = ptm->tm_isdst;
    }

    // ok?
    return ptm? tb_true : tb_false;
#else
    // GMT+8 for beijing.china.
    time += 8 * 3600;
    return tb_gmtime(time, tm);
#endif
}
Esempio n. 2
0
/* //////////////////////////////////////////////////////////////////////////////////////
 * main
 */
tb_int_t tb_demo_libc_time_main(tb_int_t argc, tb_char_t** argv)
{
    // time
    tb_time_t now = tb_time();

    // the local time
    tb_tm_t lt = {0};
    if (tb_localtime(now, &lt))
    {
        tb_trace_i("LMT: %04ld-%02ld-%02ld %02ld:%02ld:%02ld, week: %d, time: %lld ?= %lld"
            , lt.year
            , lt.month
            , lt.mday
            , lt.hour
            , lt.minute
            , lt.second
            , lt.week
            , tb_mktime(&lt)
            , now);
    }
    
    // the gmt time
    tb_tm_t gt = {0};
    if (tb_gmtime(now, &gt))
    {
        tb_trace_i("GMT: %04ld-%02ld-%02ld %02ld:%02ld:%02ld, week: %d, time: %lld ?= %lld"
            , gt.year
            , gt.month
            , gt.mday
            , gt.hour
            , gt.minute
            , gt.second
            , gt.week
            , tb_gmmktime(&gt)
            , now);
    }

    return 0;
}