liujiayu2的专栏

玩点技术

UTC时间戳-时间字符串之间互相转化

1,标准时间准换成时间戳

int standard_to_stamp(char *str_time)  
{  
        struct tm stm;  
        int iY, iM, iD, iH, iMin, iS;  

        memset(&stm,0,sizeof(stm));  
        iY = atoi(str_time);  
        iM = atoi(str_time+5);  
        iD = atoi(str_time+8);  
        iH = atoi(str_time+11);  
        iMin = atoi(str_time+14);  
        iS = atoi(str_time+17);  

        stm.tm_year=iY-1900;  
        stm.tm_mon=iM-1;  
        stm.tm_mday=iD;  
        stm.tm_hour=iH;  
        stm.tm_min=iMin;  
        stm.tm_sec=iS;  

        /*printf("%d-%0d-%0d %0d:%0d:%0d\n", iY, iM, iD, iH, iMin, iS);*/   //标准时间格式例如:2016:08:02 12:12:30
        return (int)mktime(&stm);  
}  

2,时间戳转换成标准时间

typedef struct times
{
        int Year;
        int Mon;
        int Day;
        int Hour;
        int Min;
        int Second;
}Times;

Times stamp_to_standard(int stampTime)
{
        time_t tick = (time_t)stampTime;
        struct tm tm; 
        char s[100];
        Times standard;

        //tick = time(NULL);
        tm = *localtime(&tick);
        strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", &tm);
        printf("%d: %s\n", (int)tick, s); 


        standard.Year = atoi(s);
        standard.Mon = atoi(s+5);
        standard.Day = atoi(s+8);
        standard.Hour = atoi(s+11);
        standard.Min = atoi(s+14);
        standard.Second = atoi(s+17);
    
        return standard;
}

3,如何获取系统标准时间

time_t rawtime ; 

struct tm * timeinfo; 

time ( &rawtime ); 

timeinfo = localtime ( &rawtime ); 

其中:

int Year = timeinfo->tm_year+1900;

int Mon = timeinfo->tm_mon+1;

其余日,时,分,秒都不变。


4,如何获取系统当前时间戳

 time_t now;                                                                                                                     
 int unixTime = (int)time(&now);

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

UTC时间戳-时间字符串之间互相转化

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭