时间戳总结

Linux下文件的三种时间戳

Linux下文件的三种时间标记

三种时间对应关系表

column     column     column

访问时间         Access      atime

修改时间         Modify      mtime

状态改动时间         Change    ctime

如何查看文件文件的三种时间戳

stat filename

三种时间戳的解释

访问时间:读一次文件的内容,这个时间就会更新。比如more、cat等命令。ls、stat命令不会修改atime

 

修改时间:修改时间是文件内容最后一次被修改的时间。比如:vim操作后保存文件。ls -l列出的就是这个时间

 

状态改动时间。是该文件的inode节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。

 

stat字段说明及ls命令查询时间戳

column     column

字段         说明

st_atime  文件内容最后访问时间

st_mtime 文件内容的最后修改时间

st_ctime  文件状态的最后更改时间

touch命令修改文件时间戳

touch

 

-a 修改文件的存取时间

-c 不创建文件file

-m 修改文件file的修改时间

-r ref_file

将参照文件ref_file相应的时间戳的数值作为指定文件file时间戳记的新值

 

-t time

使用指定时间值time作为指定文件file相应时间戳的新值,此处的time规定如下形式的十进制数:


时间戳是自1970 年 1 月1 日(00:00:00 GMT)以来的秒数。它也被称为 Unix 时间戳(Unix Timestamp)。

 

  Unix时间戳(Unix timestamp),或称Unix时间(Unixtime)、POSIX时间(POSIXtime),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

 

如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?

 

Java time

JavaScript         Math.round(newDate().getTime()/1000)

getTime()返回数值的单位是毫秒

Microsoft .NET / C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000)/ 10000000

MySQL      SELECTunix_timestamp(now())

Perl  time

PHP  time()

PostgreSQL      SELECTextract(epoch FROM now())

Python      先 import time 然后 time.time()

Ruby         获取Unix时间戳:Time.now或 Time.new

显示Unix时间戳:Time.now.to_i

SQL Server        SELECTDATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())

Unix / Linux      date+%s

VBScript / ASP DateDiff("s", "01/01/1970 00:00:00", Now())

其他操作系统

(如果Perl被安装在系统中)  命令行状态:perl-e "print time"

如何在不同编程语言中实现Unix时间戳(Unix timestamp) → 普通时间?

 

Java Stringdate = new java.text.SimpleDateFormat("dd/MM/yyyyHH:mm:ss").format(new java.util.Date(Unix timestamp * 1000))

JavaScript         先 var unixTimestamp = new Date(Unixtimestamp * 1000) 然后       commonTime =unixTimestamp.toLocaleString()

Linux         date-d @Unix timestamp

MySQL      from_unixtime(Unixtimestamp)

Perl  先 my $time = Unix timestamp 然后    my($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6]

PHP  date('r',Unix timestamp)

PostgreSQL      SELECTTIMESTAMP WITH TIME ZONE 'epoch' + Unix timestamp) * INTERVAL '1 second';

Python      先 import time 然后 time.gmtime(Unix timestamp)

Ruby         Time.at(Unixtimestamp)

SQL Server        DATEADD(s,Unix timestamp, '1970-01-01 00:00:00')

VBScript / ASP DateAdd("s", Unix timestamp, "01/01/197000:00:00")

其他操作系统

(如果Perl被安装在系统中)  命令行状态:perl-e "print scalar(localtime(Unix timestamp))"

如何在不同编程语言中实现普通时间 → Unix时间戳(Unixtimestamp)?

 

Java longepoch = new java.text.SimpleDateFormat("dd/MM/yyyyHH:mm:ss").parse("01/01/1970 01:00:00");

JavaScript         varcommonTime = new Date(Date.UTC(year, month - 1, day, hour, minute, second))

MySQL      SELECTunix_timestamp(time)

时间格式:YYYY-MM-DD HH:MM:SS 或YYMMDD 或 YYYYMMDD

Perl  先 use Time::Local 然后        my$time = timelocal($sec, $min, $hour, $day, $month, $year);

PHP  mktime(hour,minute, second, day, month, year)

PostgreSQL      SELECTextract(epoch FROM date('YYYY-MM-DD HH:MM:SS'));

Python      先 import time 然后 int(time.mktime(time.strptime('YYYY-MM-DDHH:MM:SS', '%Y-%m-%d %H:%M:%S')))

Ruby         Time.local(year,month, day, hour, minute, second)

SQL Server        SELECTDATEDIFF(s, '1970-01-01 00:00:00', time)

Unix / Linux      date+%s -d"Jan 1, 1970 00:00:01"

VBScript / ASP DateDiff("s", "01/01/197000:00:00", time)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值