Linux上date命令的使用及各种编程语言中的时间转换

date命令也可以理解是bash语言,总之经常遇到各种语言中的时间转换,但是记性又不好,还得去查,挺花时间的,常见的整理如下。

bash语言(date命令)

格式化当前时间:

date '+%Y-%m-%d %T',或者更简单点 date '+%D %T'

获取当前时间戳:

date '+%s'

时间戳转时间:

date '+%Y-%m-%d %T' -d '@1456585285'

时间转时间戳:

date '+%s' -d '02/27/16 23:21:30'
date '+%s' -d '2016-02-27 23:21:30'
date '+%s' -d '2016-02-27T23:21:30'

获取某时间段之前或者之后的时间:

date '+%D %T' -d '-1day'
date '+%D %T' -d '-1week'
date '+%D %T' -d '-1month'
date '+%D %T' -d '+1year2day'
date '+%D %T' -d '+1year2day1hour1min10second'
date '+%D %T' -d '+1year-2day'

获取星期(特别注意,通常0代表星期天):

date '+%w'

计算两时间之间的时间差:

注意:时间戳的定义为,『时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数』,所以是跟时区有关的。

python语言

获取时间戳:

datetime.datetime.now().strftime('%s')
time.time()

格式化时间,其实跟bash的date命令一样:

datetime.datetime.strftime('%D %T')

时间戳转时间,有特定函数:

datetime.datetime.fromtimestamp(1456588104)

python里面datetime可以相减,得到timedelta,当然datetime可以跟timedelta相加:

a = datetime.datetime.now()
a + datetime.timedelta(days=2, seconds=10)

获取星期(注意:0代表星期一,星期天是6,但如果使用strftime格式化的话,还是0代表星期天):

#如果今天是星期六
datetime.datetime.now().weekday()  #返回5
datetime.datetime.now().strftime('%w')  #返回'6'

当然解析就使用strptime了:

datetime.datetime.strptime('2016-02-28 00:01:02', '%Y-%m-%d %H:%M:%S')

php语言

获取时间戳:

echo time();

格式化当前时间:

echo strftime('%D %T');

时间戳转时间:

echo strftime('%D %T', 1456589000);

获取星期,其实只要使用strftime得到的星期都是统一,而无论是什么语言,即都是0代表星期天:

echo strftime('%w')

获取时间差没有好的办法,思路就是将时间全解析成时间戳,然后相差得到时间差秒数:

echo strtotime('2016-02-24 10:10:12') - strtotime('2016-02-23 10:10:12');

获取未来或过去某个时间:

echo strtotime("now");
echo strtotime("3 October 2005");
echo strtotime("+5 hours");
echo strtotime("+1 week");
echo strtotime("+1 week 3 days 7 hours 5 seconds");
echo strtotime("next Monday");
echo strtotime("last Sunday");
echo strftime('%D %T', strtotime('next Monday'));

解析时间方便,感觉使用strtotime比strptime更实用:

var_dump(strptime('02/29/16 00:00:00', '%m/%d/%y %H:%M:%S'));
echo strtotime('02/29/16 00:00:00');

 

发表于 2016年02月28日 00:27   评论:0   阅读:2146  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo