关于在Linux系统中的时间转化方法有哪些

关于在Linux系统中的时间转化方法有哪些,第1张

Linux时间转化方法:

(1)date -d"2008年 12月 17日 星期三 17:27:22 CST" +"%s"

该命令将2008年 12月 17日 星期三 17:27:22 CST转化为时间戳

结果:1229515680

(2)将时间戳1123495443 换算成可以识别的年月日分秒

date -d '1970-01-01 UTC 1123495443 seconds'

结果:2005年 08月 08日 星期一 18:04:03 CST

(3)date -d"Mon Jul 17 13:36:28 CST 2006" +"%F %H:%M:%S"

该命令将被转换的时间“Mon Jul 17 13:36:28 CST 2006” 转换为你想要输出的格式+"%F %H:%M:%S"

结果:2006-07-17 13:36:28

Freebsd时间转化方法:

(1)date -j -f "%a %b %d %T %Z %Y" "Wed Dec 17 17:55:36 CST 2008" "+%s"

该命令将时间Wed Dec 17 17:55:36 CST 2008转换为时间戳

结果:1229507736

(2)将时间戳1229507736转换为当前时间

date -r 1229507736

结果:Wed Dec 17 17:55:36 CST 2008

(3)date -j -f "%a %b %d %T %Z %Y" "Mon Jul 17 13:16:11 JST 2006" "+%F %H:%M:%S"

该命令将被转换的时间"`date`" 转换为你想要的格式"+%s"

结果:2006-07-17 13:16:11

补充:

perl下:

将时间戳转换为时间perl -e "print scalar localtime '1209391893'"

PHP下:

生成时间戳方法:mktime(小时,分,秒,月,日,年)

这里是否弄明白了Linux时间转化方法。

在使用postman造数据的时候,需要一直传时间戳进去,就需要自己一直去把想要的日期转化成时间戳再穿进去。

然后感觉挺麻烦的,每次都要先捣鼓捣鼓做很久准备工作。就想讲时间戳参数化,在pre-request部分去处理时间戳。

一、Date.UTC

经过一番百度,发现可以使用date.UTC()将日期转化为时间戳。

于是使用:

var date1

= Date.UTC(2022,08,11,00,23,23)

//获取2022-08-11 00:23:23的时间戳

console.log(date1)

打印出来的时间戳为:

1662855803000

转化成日期看下对不对:

1662855803000转化成时间就是2022-09-11 08:23:23

根据Date.UTC语法:

Date.UTC(year,month,day,hours,minutes,seconds,millisec)

month:也就是月份,0~11的数字。其中0表示一月。

所以出现转化后的时间戳比当前时间戳晚了一个月的情况。

另外,获得的时间是UTC时间,再将UTC时间转化为毫秒形式,所以两个日期的时间差有8小时。(猜测还需要再研究下?)

二、new Date().getTime()

Date 对象用于处理日期和时间。

创建 Date 对象的语法:

var myDate=new Date()

Date 对象会自动把当前日期和时间保存为其初始值。

格式:

new Date("month dd,yyyy hh:mm:ss")

getTime() 返回 1970 年 1 月 1 日至今的毫秒数。

所以:

var d =new Date("2022-08-11 00:23:23").getTime()

console.log(d)

时间戳为:1660148603000

这个时间戳转化成北京时间就是2022.08.11 00:23:23

Date.UTC:

返回自1970年1月1日按照通用时间午夜的毫秒数。

Unix时间戳:

Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

在计算机中看到的UTC时间都是从(1970年01月01日 0:00:00)开始计算秒数的。所看到的UTC时间那就是从1970年这个时间点起到具体时间共有多少秒。 这个秒数就是Unix时间戳。

时间戳与时区是没有关系的。

如果按这看起来两者好像没什么区别的样子。

首先不同系统的ping给出的跳数是不一样的,比如你这里TS:下面给出了4跳,而我在我的linux上给出了9跳:

$ ping -T tsonly 10.249.64.1

PING 10.249.64.1 (10.2.164.11) 56(124) bytes of data.

64 bytes from 10.2.164.11: icmp_req=1 ttl=248 time=231 ms

TS:  29437933 absolute

-15

18

-2

9

-7

74

9

64

Unrecorded hops: 10

再来看看第一个值29437933 ,这其实是你GMT,就是你运行ping里的格林尼治时间,我们来换算一下:

>>>29437933/3600000

8

>>>29437933/3600000.

8.17720361111111

>>>(29437933-8*3600000)/60000.

10.632216666666666

>>>(29437933-8*3600000)

637933

>>>637933-10*60000

37933

>>>37933/1000

37

所以就是GMT:8:10:37:933,希望能帮到你


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8308931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存