Linux中的时间和时间管理
Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。
struct tm {
int tm_sec; /* 秒 – 取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
int tm_year; /* 年份,其值等于实际年份减去1900 */
int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
};
#define _TM_DEFINED
#endif
星期几 月份 日期 时:分:秒 年\n\0
例如:Wed Jan 02 02:03:55 1980\n\0
%A 星期几的全称
%b 月分的简写
%B 月份的全称
%c 标准的日期的时间串
%C 年份的后两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年分,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
%U 第年的第几周,把星期日做为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号
#include <time.h>
void main( void )
{
struct tm *newtime;
char buf[128];
time_t time;
time( &time); // time=time(NULL);
newtime=localtime(&time);
strftime( buf, 128, "Today is %A, day %d of %B in the year %Y.\n", newtime);
printf(buf);
}
运行结果:
Today is Saturday, day 30 of July in the year 2005.
NAME
difftime - calculate time difference
SYNOPSIS
#include <time.h>
double difftime(time_t time1, time_t time0);
单位为秒。
分解转化时间
Linux kernel time
#define _STRUCT_TIMESPEC
struct timespec {
__kernel_time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
#endif
struct timeval {
__kernel_time_t tv_sec; /* seconds */
__kernel_suseconds_t tv_usec; /* microseconds */
};
source/arch/x86/include/asm/posix_types_32.h
asmlinkage long sys_stime(time_t __user *tptr);
asmlinkage long sys_gettimeofday(struct timeval __user *tv,
struct timezone __user *tz);
asmlinkage long sys_settimeofday(struct timeval __user *tv,
struct timezone __user *tz);
最新文章
- 关于LogStash运行在AIX 64位机器上的问题与临时解决方案
- 前端技巧:禁止浏览器static files缓存篇(转)
- MemSQL分布式架构介绍(二)
- Java构造函数的继承问题
- Java 引用 WeakReference
- Eric6 右键点击生产对话框代码报错
- FZU 1686 神龙的难题 DLX反复覆盖
- Angularjs实现简单分页
- laravel常用拓展库
- cdr格式文件抠图
- 预加载(图片,css ,js)
- NOIP2017滚粗记
- Python——使用第三方库Pillow生成图片缩略图
- 2018/03/08 每日一个Linux命令 之 chattr/lsattr
- ZOJ 3690 Choosing number(矩阵)
- dj django与ajax交互
- mybatis-plus排除非表中字段
- Android自定义控件实战——仿淘宝商品浏览界面
- Shader工具
- HDU2460-Network
热门文章
- C#-获取datatable指定列的数据
- Project Management - 2) Estimate Your Work
- Unity3d 网络编程(一)(Unity3d内建网络Network介绍)
- 为什么我刚发表的文章变成了“待审核”,csdn有没有官方解释啊
- 解决MVC Jquery";此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站";的问题
- QT连接多种数据库f方法及测试
- C# 之 用NPOI类库操作Excel
- 自动化分析工具PSSDIAG
- Linux操作系统的简单认识
- mysql计算连续天数,mysql连续登录天数,连续天数统计