C++的 时间操作
2013-09-07 21:17
381 查看
C++ 的时间操作 库 time.h 里边熟悉的有众多的函数 和两个类型
time_t
struct tm
其中 time_t 里边存储时间戳
tm作为一个结构体 字段为时间的各种 单位
附上 格式化的 关键字
/************************************************************************/
/*
%a Abbreviated weekday name
%A Full weekday name
%b Abbreviated month name
%B Full month name
%c Date and time representation appropriate for locale
%d Day of month as decimal number (01 – 31)
%H Hour in 24-hour format (00 – 23)
%I Hour in 12-hour format (01 – 12)
%j Day of year as decimal number (001 – 366)
%m Month as decimal number (01 – 12)
%M Minute as decimal number (00 – 59)
%p Current locale’s A.M./P.M. indicator for 12-hour clock
%S Second as decimal number (00 – 59)
%U Week of year as decimal number, with Sunday as first day of week (00 – 53)
%w Weekday as decimal number (0 – 6; Sunday is 0)
%W Week of year as decimal number, with Monday as first day of week (00 – 53)
%x Date representation for current locale
%X Time representation for current locale
%y Year without century, as decimal number (00 – 99)
%Y Year with century, as decimal number
%z, %Z Time-zone name or abbreviation; no characters if time zone is unknown
%% Percent sign
*/
/************************************************************************/
time_t
struct tm
其中 time_t 里边存储时间戳
tm作为一个结构体 字段为时间的各种 单位
#include <iostream> #include <string> #include <time.h> using namespace std; std::string formart_timestamp(long timestamp , std::string format_str) { const time_t rawtime = (const time_t)timestamp; struct tm * dt; char timestr[30]; char buffer [30]; dt = localtime(&rawtime); strftime(timestr, sizeof(timestr), format_str.c_str() , dt); sprintf(buffer,"%s", timestr); std::string stdBuffer(buffer); return stdBuffer; } // format %Y-%m-%d %H:%M:%S long get_timestamp(std::string formated_time ) { time_t t; struct tm s; sscanf( formated_time.c_str(),"%d-%d-%d %d:%d:%d", &s.tm_year,&s.tm_mon,&s.tm_mday,&s.tm_hour,&s.tm_min,&s.tm_sec); s.tm_year 4000 -= 1900; s.tm_mon -= 1; t=mktime(&s); return (long)t; } int main() { long _timestamp = 1971298743; string _format = "%Y-%m-%d %H:%M:%S"; string str_time = formart_timestamp( _timestamp , _format); long long_time = get_timestamp(str_time); cout << long_time << " " ; cout << str_time << endl; cout << _timestamp; getchar(); return 0; }
附上 格式化的 关键字
/************************************************************************/
/*
%a Abbreviated weekday name
%A Full weekday name
%b Abbreviated month name
%B Full month name
%c Date and time representation appropriate for locale
%d Day of month as decimal number (01 – 31)
%H Hour in 24-hour format (00 – 23)
%I Hour in 12-hour format (01 – 12)
%j Day of year as decimal number (001 – 366)
%m Month as decimal number (01 – 12)
%M Minute as decimal number (00 – 59)
%p Current locale’s A.M./P.M. indicator for 12-hour clock
%S Second as decimal number (00 – 59)
%U Week of year as decimal number, with Sunday as first day of week (00 – 53)
%w Weekday as decimal number (0 – 6; Sunday is 0)
%W Week of year as decimal number, with Monday as first day of week (00 – 53)
%x Date representation for current locale
%X Time representation for current locale
%y Year without century, as decimal number (00 – 99)
%Y Year with century, as decimal number
%z, %Z Time-zone name or abbreviation; no characters if time zone is unknown
%% Percent sign
*/
/************************************************************************/
相关文章推荐
- [C++STDlib基础]关于日期时间的操作——C++标准库头文件<ctime>
- c++日期和时间相关操作-<time.h>(ctime)
- C/C++时间相关操作 SYSTEMTIME time_t 字符串的相互转换
- c++日期和时间相关操作-<time.h>(ctime)
- [C++STDlib基础]关于日期时间的操作——C++标准库头文件<ctime>
- C++ 时间操作(获取毫秒级)
- [Object-C]_[C/C++]_[日期时间操作对比]
- C++软件开发中“时间”相关操作全攻略
- c++ 获取操作的精确时间
- C++ 时间操作(获取毫秒级)
- C++ 时间操作(获取毫秒级)【转】
- C++STL选择合适的容器以及容器操作的时间复杂度
- C/C++关于时间操作详解
- C/C++中的时间操作
- c++ mfc操作时间的小总结
- C++单链表找倒数第k个节点(时间复杂度为o(n)哦,用相距k节点的2个指针进行操作)
- C++时间戳转化操作实例分析【涉及GMT与CST时区转化】
- c/c++时间操作相关函数
- 用C++操作时间的所有函数库
- c/c++时间操作(struct tm 和 time_t 时间和日期的使用方法)