当前位置:首页 » 操作系统 » linux时间差计算

linux时间差计算

发布时间: 2023-09-28 01:36:41

A. linux使用c/c++怎么计算时间差

可以用time()系统调用来获取系统时间,然后减去之前记录的时间就得到了时间差

B. linux如何比对两个时间差

#include <stdio.h>
#include <time.h>

int
main ()
{
struct tm tm, tm2;
char buf[255];
time_t t1, t2;

strptime ("Thu Feb 5 13:12:18 EST 2009", "%a %b %d %H:%M:%S EST %Y", &tm);
strptime ("Fri Feb 6 13:11:18 EST 2009", "%a %b %d %H:%M:%S EST %Y", &tm2);

t1 = mktime(&tm);
t2 = mktime(&tm2);
printf("TIME: %ld, %ld, %ld\n", t2, t1, t2-t1);
return 0;
}

C. linux上date格式化输出及日期运算

1、按照YYYY-YY-DD的格式显示当前日期

2、按照MM/DD/YY的格式显示当前日期

3、计算3天前的日期

4、计算3天后的日期

5、计算1个月前的日期

6、计算1年前的日期

7、获取当前时间

8、获取1小时前的时间

9、获取10分钟前的时间

10、显示系统当前的时间戳,基准是格林尼治天文台1970年1月1日0点0分0秒

11、把某时间戳转换回日期格式
date -d "@1614679748"
2020年 03月 02日 星期六 18:09:08 CST

12、计算任意日期的后N日

13、计算两个日期相差天数

D. linux中的时间是哪个时区的

1、more /etc/sysconfig/clock
ZONE="Asia/Shanghai"
2、GMT + 8 = UTC + 8 = CST ,我们的linux系统时间和计算机硬件时间应该是cst时间,上海时区。
3、安装CentOS/RHEL时候,应当取消”系统时钟使用UTC时间”这个选项,如果忘了取消,系统时钟会差8小时
#vi /etc/sysconfig/clock
把UTC=true 修改为 UTC=false,保存后重启即可。
4、#ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者
#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、系统时钟
date -R
6、zmp – This utility prints the current time and date in the specified time zone. Example:
# zmp Japan
Japan Tue Feb 28 17:52:18 2017 JST
# zmp Iceland
Iceland Tue Feb 28 08:52:45 2017 GMT
zmp China
China Tue Feb 28 08:53:02 2017 China
7、CST/GMT/UTC/DST缩写
CST China Standard Time UT+8:00
GMT 格林威治标准时间(Greenwich Mean Time,简称G.M.T.)
UTC 世界协调时间UTC比GMT来得更加精准
DST 夏日节约时间:所谓“夏日节约时间”Daylight Saving Time(简称D.S.T.),
RTC 硬件时钟(Real Time Clock,简称RTC),相对应的系统时钟(System Clock)。

E. Linux下用shell获取指定文件的最后修改时间并与系统时间比对,如果相差时间超过3分钟则执行另一个脚本

使用date命令加上合适的时间格式化字符串(+%s),会显示当前时间(或-d参数指定的时间)与1970-01-01 00:00:00相差的秒数(详细可以参考date的man手册)

所以基本想法就是使用date命令分别获取当前时间与文件修改时间的秒数,然后看这2个秒数之间是否有相差180秒以上。

获取当前时间比较简单,直接date +%s就ok了

下面看看如何获取文件时间

使用stat 命令后面跟一个文件名可以获取文件的状态,包括文件修改时间。其中文件修改时间会单独一行显示,格式如下:Modify: 2013-02-21 17:58:05.404876407 +0800 (具体的精度可能系统不同略微有些差别,但大致格式是这样)

所以我们可以stat myfilename | grep Modify来获取文件的修改时间的信息,然后通过awk分别获取时间的日期和时间段

stat myfilename | grep Modify | awk '{print $2}' #这句获取了日期段,即上面例子里面的2013-02-21

stat myfilename | grep Modify | awk '{split($3,var,".");print var[1]}' #这句获取了时间段,即上面例子里面的17:58:05,具体关于awk的使用可以参考awk的使用手册

那么现在可以获取文件修改时间与1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s

那么这个时间与当前时间想减的结果与180相比就可以知道是否满足条件了,满足条件的话就可以执行相应的命令。

参考代码如下:

current_datetime=`date +%s`
filedate=`stat tt.txt | grep Modify | awk '{print $2}'`
filetime=`stat tt.txt | grep Modify | awk '{split($3,var,".");print var[1]}'`
file_datetime=`date -d "$filedate $filetime" +%s
timedelta=`expr $current_datetime - $file_datetime`
if [ "$timedelta" -gt "180" ];then
echo "match condition"
fi
热点内容
奇亚币p图软件存储机 发布:2025-01-23 14:38:03 浏览:43
linux有用的命令 发布:2025-01-23 14:35:03 浏览:681
php显示缩略图 发布:2025-01-23 14:22:17 浏览:725
安卓哈利波特怎么更换账号 发布:2025-01-23 14:16:44 浏览:586
中国压缩包 发布:2025-01-23 14:10:49 浏览:499
如果让电脑访问到公司服务器 发布:2025-01-23 14:02:46 浏览:686
360浏览器脚本 发布:2025-01-23 13:54:42 浏览:565
合拍率算法 发布:2025-01-23 13:50:59 浏览:257
access数据库期末考试 发布:2025-01-23 13:50:23 浏览:120
androiddialog背景 发布:2025-01-23 13:47:44 浏览:209