之前使用过cocos2d-x获取系统时间,毫秒级的
long getCurrentTime()
{
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec * 1000 + tv.tv_usec / 1000;
}
或者这样写
long getCurrentTime()
{
struct cc_timeval tv;
CCTime::gettimeofdayCocos2d(&tv,NULL);
return tv.tv_sec * 1000 + tv.tv_usec / 1000;
}
上面两种实现应该都是没有问题的~~~之前获取时间的主要作用是给随机函数做种子,或者计算FPS,或者作为自己的定时器使用~这些都没有问题
后来有项目需要获取年月日等时间
struct tm *tm;
time_t timep;
if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) {
//win平台下这样处理
time(&timep);
}else {
//其它平台这样处理
struct timeval nowTimeval;
gettimeofday(&nowTimeval,NULL);
timep = nowTimeval.tv_sec;
}
tm = localtime(&timep);
int year = tm->tm_year + 1900;
int month = tm->tm_mon + 1;
int day = tm->tm_mday;
int hour = tm->tm_hour;
int min = tm->tm_min;
int second = tm->tm_sec;
CCLOG("%d-%d-%d %d-%d-%d",year,month,day,hour,min,second);//输出时间
// void GetTime(int level)
// {
// struct tm *tm;
// time_t timep;
//#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
// time(&timep);
//#else
// struct cc_timeval now;
// CCTime::gettimeofdayCocos2d(&now,NULL);
// timep = now.tv_sec;
//#endif
//
//
// tm = localtime(&timep);
// int year = tm->tm_year + 1900;
// int month = tm->tm_mon + 1;
// int day = tm->tm_mday;
// int hour = tm->tm_hour;
// int min = tm->tm_min;
// int second = tm->tm_sec;
// }