Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9162
  • 博文数量: 22
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-04 07:52
文章分类
文章存档

2012年(22)

我的朋友
最近访客

分类:

2012-12-04 07:54:03

 

/**

 * 函数功能:获取系统的时间

 * char  *cDateTime:14字节时间串,YYYYMMDDHHMMSS,20120227161359

 */

void ST_GetDateTime(char *cDateTime)

{

       int ret;

       time_t t;

 

       ret = time(&t); // 返回从公元197011000秒到现在的秒数

       if(ret < 0)

       {

              perror("ST_GetDateTime");

              return;

       }

 

       struct tm *tm = localtime(&t); //取得当地目前时间和日期,时间日期已经转换成当地时区

//     char *format = " %Y/%m/%d %H:%M:%S";

       char *format = " %Y%m%d%H%M%S";

       strftime(cDateTime, 21, format, tm); // 函数按照参数fmt所设定格式将time类型的参数格式化为日期时间信息然后存储在字符串str

}

 

/**

 * 函数功能:设置系统的时间

 * char  *cDateTime:YYYYMMDDHHMMSS,20120227161359

 * 返回值: 0x00-->设置成功 : 0x8B-->参数错误 : 0x01-->设置失败

 */

int ST_SetDateTime(char *cDateTime)

{

       char cmd[256];

 

       struct

       {

              char year[5];

              char month[3];

              char day[3];

              char hour[3];

              char min[3];

              char sec[3];

       } date;

 

       memset(&date, 0, sizeof(date));

       memset(&cmd, 0, sizeof(cmd));

 

       memcpy(&date.year, cDateTime, 4);

       memcpy(&date.month, cDateTime + 4, 2);

       memcpy(&date.day, cDateTime + 6, 2);

       memcpy(&date.hour, cDateTime + 8, 2);

       memcpy(&date.min, cDateTime + 10, 2);

       memcpy(&date.sec, cDateTime + 12, 2);

       sprintf(cmd, "date -s %s.%s.%s-%s:%s:%s", date.year, date.month, date.day, date.hour, date.min, date.sec);

        printf("%s\n",cmd);

       if(system(cmd) < 0)            // 时间设置

       {

              perror("ST_SetDateTime");

              return 1;

       }

       if(system("hwclock -w") < 0)      // 时间设置生效

       {

              perror("ST_SetDateTime");

              return 1;

       }

 

       return 0;

}

 

 

阅读(254) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~