首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>网络管理>环境配置>正文

开源空间:关于Linux下时间编程的问题

http://www.oklinux.cn  2008-03-12  赛迪网 korn  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

关于Linux下时间编程的问题:

1. Linux下与时间有关的结构体

struct timeval

{

int tv_sec;

int tv_usec;

};

其中tv_sec是由凌晨开始算起的秒数,tv_usec则是微秒(10E-6 second)。

struct timezone

{

int tv_minuteswest;

int tv_dsttime;

};

tv_minuteswest是格林威治时间往西方的时差,tv_dsttime则是时间的修正方式。

struct timespec

{

long int tv_sec;

long int tv_nsec;

};

tv_nsec是nano second(10E-9 second)。

struct tm

{

int tm_sec;

int tm_min;

int tm_hour;

int tm_mday;

int tm_mon;

int tm_year;

int tm_wday;

int tm_yday;

int tm_isdst;

};

tm_sec表「秒」数,在[0,61]之间,多出来的两秒是用来处理跳秒问题用的。

tm_min表「分」数,在[0,59]之间。

tm_hour表「时」数,在[0,23]之间。

tm_mday表「本月第几日」,在[1,31]之间。

tm_mon表「本年第几月」,在[0,11]之间。

tm_year要加1900表示那一年。

tm_wday表「本第几日」,在[0,6]之间。

tm_yday表「本年第几日」,在[0,365]之间,闰年有366日。

tm_isdst表是否为「日光节约时间」。

struct itimerval

{

struct timeval it_interval;

struct timeval it_value;

};

it_interval成员表示间隔计数器的初始值,而it_value成员表示间隔计数器的当前值。

2.获得当前时间

在所有的UNIX下,都有个time()的函数

time_t time(time_t *t);

这个函数会传回从epoch开始计算起的秒数,如果t是non-null,它将会把时间值填入t中。

对某些需要较高精准度的需求,Linux提供了gettimeofday()。

int gettimeofday(struct timeval * tv,struct timezone *tz);

int settimeofday(const struct timeval * tv,const struct timezone *tz);

struct tm格式时间函数

struct tm * gmtime(const time_t * t);

转换成格林威治时间。有时称为GMT或UTC。

struct tm * localtime(const time_t *t);

转换成本地时间。它可以透过修改TZ环境变数来在一台机器中,不同使用者表示不同时间。

time_t mktime(struct tm *tp);

转换tm成为time_t格式,使用本地时间。

tme_t timegm(strut tm *tp);

转换tm成为time_t格式,使用UTC时间。

double difftime(time_t t2,time_t t1);

计算秒差。

3.文字时间格式函数

char * asctime(struct tm *tp);

char * ctime(struct tm *tp);

这两个函数都转换时间格式为标准UNIX时间格式。

Mon May 3 08:23:35 1999

ctime一率使用当地时间,asctime则用tm结构内的timezone资讯来表示。

size_t strftime(char *str,size_t max,char *fmt,struct tm *tp);

strftime有点像sprintf,其格式由fmt来指定。

%a : 本第几天名称,缩写。

%A : 本第几天名称,全称。

%b : 月份名称,缩写。

%B : 月份名称,全称。

%c : 与ctime/asctime格式相同。

%d : 本月第几日名称,由零算起。

%H : 当天第几个小时,24小时制,由零算起。

%I : 当天第几个小时,12小时制,由零算起。

共2页: 上一页 1 [2] 下一页

上一篇:Java 安全--java程序开发的程序的保护   下一篇:修改VMware下Ubuntu界面分辨率过高问题

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·在Linux下安装Perl及Perl模块
·Shell编程:Linux系统环境程序设计之路
·Linux configure关于交叉编译的参数设置
·关于Linux系统下C语言编程注意事项
·Linux系统下编译安装g2ipmsg(飞鸽传书)
·在Ubuntu 7.10 Linux下搭建J2EE开发环境
·静态库和动态库 Linux系统程序设计之路
·JAVA得到网卡物理地址(Windows和Linux)
·利用PS3和Linux搭建一个并行程序开发平台
·Linux系统下多线程程序编译makefile文件
·Redhat Linux上vsftpd编译安装
·编程语言PHP在Web开发领域的优势在哪?
·Weblogic在Linux和Unix下的后台启动脚本
·Linux系统下安装Perl及其模块的方法
·Java应用:Fedora Linux 8系统下配置JDK
·关于Linux系统下软件开发工具的选择
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·让WordPress在Ubuntu系统运行起来
·MySQL能否会继续让LAMP架构发扬光大?
·Ubuntu Linux 8.04 下安装GCC编译器过
·Ubuntu Linux 8.04系统JAVA环境配置方
·Linux环境变量配置和保存地点
·IIS上PHP5.23安装配置详细介绍
·Fedora 8.0下安装Perl过程
·Linux系统下手动安装pdo_mysql 成功
·在Linux下防止某个程序被运行两次的方
·Linux下automake软件编译与发布快速入
·Linux系统下精确到微秒级的时间操作函
·Linux系统下安装Perl及其模块的方法
  阅读排行
·Ubuntu Linux 8.04 下安装GCC编译器过
·Linux configure关于交叉编译的参数设
·Linux系统下手动安装pdo_mysql 成功
·如何在Ubuntu 7.10上实现C/C 开发环境
·关于Linux系统下软件开发工具的选择
·Linux环境变量配置和保存地点
·Linux系统下源码阅读工具ctags vim
·Weblogic在Linux和Unix下的后台启动脚
·Linux系统下 设置OpenGL的编程环境
·/etc/profile环境变量配置解析
·在Windows系统下配置Linux C 开发环境
·Linux Ftp服务器搭建支持Anonymous读写
·Linux系统下 MONO执行C#程序的方法
·Ubuntu配置Java Eclipse MyEclipse环境
·Ubuntu配置Java+Eclipse+MyEclipse环境
网摘收藏: