很简单的 如下: /* 02.14.2009 ccsdu2004@yahoo.com.cn www.gaimo.net */ #ifndef G_UTIL_TIME_HPP #define G_UTIL_TIME_HPP #include <stdio.h> #include <string> #include <time.h> using namespace std; namespace g { namespace util { class Time { public: Time(); ~Time(); public: int get_year(); int get_month(); int get_day(); string get_time_str(); private: void reset(); int get_info(char c); private: time_t t; }; } } #endif 实现文件为: #include <boost/lexical_cast.hpp> #include "time.hpp" #pragma warning(disable:4996) using namespace boost; namespace g { namespace util { Time::Time():t(0){} Time::~Time(){} void Time::reset() { t = time(0); } int Time::get_year() { return get_info('Y'); } int Time::get_month() { return get_info('m'); } int Time::get_day() { return get_info('d'); } int Time:: get_info(char c) { reset(); char tmp[48]; switch(c) { case 'y': strftime( tmp, sizeof(tmp), "%y",localtime(&t)); break; case 'Y': strftime( tmp, sizeof(tmp), "%Y",localtime(&t)); break; case 'm': strftime( tmp, sizeof(tmp), "%m",localtime(&t)); break; case 'd': strftime( tmp, sizeof(tmp), "%d",localtime(&t)); break; default: return -1; }; //no need for eception. return lexical_cast<int>(tmp); } //get time string. string Time::get_time_str() { reset(); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y.%m.%d.%X",localtime(&t)); string time; time.assign(tmp); return time; } } }