unix time stamp(时间戳)和常规时间相互转换的C++代码
2015-10-09 22:56
543 查看
先来扫盲一下: unix time stamp翻译为时间戳, 就是从1970年1月1日00:00::00以来的秒数。
从unix time stamp到常规时间:
再看常规时间到unix stamp time的转换:
1444401700
Fri Oct 09 22:41:40 2015
OK, 无需多说。
从unix time stamp到常规时间:
#include <iostream> #include <ctime> using namespace std; void unixTime2Str(int n, char strTime[], int bufLen) { struct tm tm = *localtime((time_t *)&n); strftime(strTime, bufLen - 1, "%Y-%m-%d %H:%M:%S", &tm); strTime[bufLen - 1] = '\0'; } int main(void) { char strTime[100] = {0}; int now = 1444401700; unixTime2Str(now, strTime, sizeof(strTime)); cout << strTime << endl; return 0; }结果为:2015-10-09 22:41:40
再看常规时间到unix stamp time的转换:
#include <iostream> #include <ctime> using namespace std; time_t strTime2unix(char timeStamp[]) { struct tm tm; memset(&tm, 0, sizeof(tm)); sscanf(timeStamp, "%d-%d-%d %d:%d:%d", &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec); tm.tm_year -= 1900; tm.tm_mon--; return mktime(&tm); } int main() { char timeStamp[100] = "2015-10-09 22:41:40"; time_t t = strTime2unix(timeStamp); cout << t << endl; // additional cout << ctime(&t) << endl; return 0; }结果为:
1444401700
Fri Oct 09 22:41:40 2015
OK, 无需多说。
相关文章推荐
- 排序矩阵(杨氏矩阵)中的从小到大第k个数(C++)
- C++Primer第五版 练习11.23(解答)
- 在C语言中 宏定义是什么?
- C++primer第五版笔记-第九章顺序容器
- C++Primer第五版 练习11.20(解答)
- C++Primer第五版 11.3.2节练习
- 关于析构函数的问题
- C/C++常用宏定义
- C++中struct和class的区别
- C++编程对缓冲区的理解
- PIC18单片机端C语言serial bootloader和PC端C#语言bootloader串口通信程序
- C++primer学习:关联容器(1)
- 设计模式C++之单例模式
- C/C++面试(1)——extern "C"
- C语言基础—函数的理解及应用
- VC++ .NET 动态加载DLL,使用反射方式Invoke委托调用
- C++中的空类默认产生哪些类成员函数?
- 小小君的C语言第二课
- C++:数组和指针
- 使用C++STL的map容器实现一种命令映射