sssit-dev

yuwei@sssit-dev.com

导航

Linux下的时间戳

时间戳是什么东东?        不知道的哥哥姐姐GG去吧,下面介绍下如何获取指定时间的时间戳, 在终端输入 date -d "2010-11-09 12:30:30" +%s         请注意‘+‘前面的空格, bash对空格是敏感的,许多命令不能被解析的时候试一下加一个空格,或者减少一个空格, 例如shell编程中的[ ! -f /home/1.txt ]  这个表达式是用来判断如果存在表示成功0, 然后取反,即表达式的值为1,’[‘、‘]’左右必须空格,否则会报错!(RHEL5中亲测)         那么现在来说一下RHEL中如何获取精确到毫秒的时间 两个函数localtime和gettimeofday   两个结构体,struct tm   . struct timezone ,详情请查阅UNIX环境高级编程或者是man手册         以下是代码: [cpp]#include <stdio.h> #include <stdlib.h> #include <sys\time.h> int main(){     char timestamped[30] = {0};       struct tm* timeptr;     struct timezone mtm;     gettimeofday(&mtm);     timeptr = localtime(&mtm.tv_sec);     sprintf(timestamped, "time is%2d:%2d:%2d:%2d%2d%d", timeptr->tm_year, timeptr->tm_mon,                            timeptr->tm_mday,timeptr->tm_hou, timeptr->tm_min, timeptr->tm_sec, mtm.tv_usec);     printf("%s\n", timestamped);     return 1; }[/cpp] 注意Linux下IO库是基于行缓冲的,如果没有\n 。printf可能会没有输出,详情查阅UNIX环境高级编程 这下我们就能看到当前精确的时间了,另若需要更精确的时钟可以使用select函数, 它的精确度取决于CPU时钟 ,就这样吧

posted on 2011-10-28 18:36  sssit-dev  阅读(408)  评论(0编辑  收藏  举报