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 <systime.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("%sn", timestamped); return 1; } [/cpp] 注意: Linux下IO库是基于行缓冲的,如果没有n 。printf可能会没有输出,详情查阅UNIX环境高级编程 这下我们就能看到当前精确的时间了,另若需要更精确的时钟可以使用select函数, 它的精确度取决于CPU时钟 ,就这样吧

posted on 2011-07-04 16:09  sssit-dev  阅读(229)  评论(0编辑  收藏  举报