shell获取上一个小时的时间

时间:2022-12-04 14:56:28
如果现在的时间表示是:2013083010,如果获取上一个小时的时间变成:2013083009
当时间变为:2013083000时,其实输出的时间是:2013082923

如果能解决十分感谢

20 个解决方案

#1


date -d '-1 hours'

#2


date +%Y%m%d%H -d  '-1 hours'

#3


引用 2 楼 songsong33 的回复:
date +%Y%m%d%H -d  '-1 hours'

shell获取上一个小时的时间很好

#4


引用 1 楼 songsong33 的回复:
date -d '-1 hours'

你这个是什么呀,我怎么运行呀,我看也得不到正确结果呀,当时间变为:2013083000时,其实输出的时间是:2013082923

#5


引用 4 楼 chinabhlt 的回复:
Quote: 引用 1 楼 songsong33 的回复:

date -d '-1 hours'

你这个是什么呀,我怎么运行呀,我看也得不到正确结果呀,当时间变为:2013083000时,其实输出的时间是:2013082923

shell命令,你在命令行输入 

date +%Y%m%d%H -d  '-1 hours'

'-1 hours'是-d参数的参数,即获取上一个小时的时间;
+%Y%m%d%H是输入格式

#6


引用 5 楼 songsong33 的回复:
Quote: 引用 4 楼 chinabhlt 的回复:

Quote: 引用 1 楼 songsong33 的回复:

date -d '-1 hours'

你这个是什么呀,我怎么运行呀,我看也得不到正确结果呀,当时间变为:2013083000时,其实输出的时间是:2013082923

shell命令,你在命令行输入 

date +%Y%m%d%H -d  '-1 hours'

'-1 hours'是-d参数的参数,即获取上一个小时的时间;
+%Y%m%d%H是输入格式

完全运行不了,不知道你在干什么?

#7


是在Linux服务器上操作吗?
是要写C程序,还是shell脚本,还是在终端上直接输命令?

date是Linux最常见的命令之一,你不是不知道吧?

#8


date +%Y%m%d%H -d  '-1 hours'
这个命令是可以的啊,具体如下:
[root@192-168-1-12 ~]# date
Fri Aug 30 15:13:18 CST 2013
现在的时间是2013083015
使用date +%Y%m%d%H -d  '-1 hours'后,结果如下:
[root@192-168-1-12 ~]# date +%Y%m%d%H -d  '-1 hours'
2013083014

#9


引用 8 楼 px_19870606 的回复:
date +%Y%m%d%H -d  '-1 hours'
这个命令是可以的啊,具体如下:
[root@192-168-1-12 ~]# date
Fri Aug 30 15:13:18 CST 2013
现在的时间是2013083015
使用date +%Y%m%d%H -d  '-1 hours'后,结果如下:
[root@192-168-1-12 ~]# date +%Y%m%d%H -d  '-1 hours'
2013083014

不好意思,不知你们用的是什么linux?
一下是我的结果:
[u@H /ngboss/mddms/interface/boss]$date +%Y%m%d%H -d  '-1 hours'
Invalid character in date/time specification.
Usage: date [-u] [+Field Descriptors]

#10


用的是redhat
不知你使用的是?

#11


date +%Y%m%d%H -d  '-1 hours'

ubuntu执行上面的命令得到正确的结果。

#12


不错!~~  学习了!~

#13


引用 9 楼 chinabhlt 的回复:
不好意思,不知你们用的是什么linux?
一下是我的结果:
[u@H /ngboss/mddms/interface/boss]$date +%Y%m%d%H -d  '-1 hours'
Invalid character in date/time specification.
Usage: date [-u] [+Field Descriptors]

你的date命令不支持那种语法,可以使用epoch来计算。参考:
http://bbs.chinaunix.net/thread-1772999-1-1.html

#14


该回复于2013-10-08 14:22:38被管理员删除

#15


date +%Y%m%d%H -d  '-1 hours'

#16


上述方法都是在Linux上的,如果在AIX上,怎么办呀,我man了一下,没有发现'-1 hours',要想获得一小时前估计复杂多了。

#17


引用 16 楼 dididimeme 的回复:
上述方法都是在Linux上的,如果在AIX上,怎么办呀,我man了一下,没有发现'-1 hours',要想获得一小时前估计复杂多了。

请看13楼的链接

#18


aix 没有date的函数,
计算某日前若干天的日期
#date=YYYYMMDD
#Usage:command date days
str=$1
days=$2
yy=`echo $str|cut -c 1-4`
mm=`echo $str|cut -c 5-6`
dd=`echo $str|cut -c 7-8`
sav_dd=$days
days=`expr $days - $dd`
while [ $days -ge 0 ]
do
        mm=`expr $mm - 1`
        [ $mm -eq 0 ] && mm=12 && yy=`expr $yy - 1`
        aaa=`cal $mm $yy`
        bbb=`echo $aaa|awk '{print $NF}'`
        days=`expr $days - $bbb`
done
dd=`expr 0 - $days`
expr $dd : "^.$" > /dev/null && dd=0$dd
expr $mm : "^.$" > /dev/null && mm=0$mm
echo $yy$mm$dd

#19


引用 5 楼 songsong33 的回复:
Quote: 引用 4 楼 chinabhlt 的回复:

Quote: 引用 1 楼 songsong33 的回复:

date -d '-1 hours'

你这个是什么呀,我怎么运行呀,我看也得不到正确结果呀,当时间变为:2013083000时,其实输出的时间是:2013082923

shell命令,你在命令行输入 

date +%Y%m%d%H -d  '-1 hours'

'-1 hours'是-d参数的参数,即获取上一个小时的时间;
+%Y%m%d%H是输入格式
厉害,shell编程怎么学,感觉很高大上啊

#20


多看man,多尝试。

#1


date -d '-1 hours'

#2


date +%Y%m%d%H -d  '-1 hours'

#3


引用 2 楼 songsong33 的回复:
date +%Y%m%d%H -d  '-1 hours'

shell获取上一个小时的时间很好

#4


引用 1 楼 songsong33 的回复:
date -d '-1 hours'

你这个是什么呀,我怎么运行呀,我看也得不到正确结果呀,当时间变为:2013083000时,其实输出的时间是:2013082923

#5


引用 4 楼 chinabhlt 的回复:
Quote: 引用 1 楼 songsong33 的回复:

date -d '-1 hours'

你这个是什么呀,我怎么运行呀,我看也得不到正确结果呀,当时间变为:2013083000时,其实输出的时间是:2013082923

shell命令,你在命令行输入 

date +%Y%m%d%H -d  '-1 hours'

'-1 hours'是-d参数的参数,即获取上一个小时的时间;
+%Y%m%d%H是输入格式

#6


引用 5 楼 songsong33 的回复:
Quote: 引用 4 楼 chinabhlt 的回复:

Quote: 引用 1 楼 songsong33 的回复:

date -d '-1 hours'

你这个是什么呀,我怎么运行呀,我看也得不到正确结果呀,当时间变为:2013083000时,其实输出的时间是:2013082923

shell命令,你在命令行输入 

date +%Y%m%d%H -d  '-1 hours'

'-1 hours'是-d参数的参数,即获取上一个小时的时间;
+%Y%m%d%H是输入格式

完全运行不了,不知道你在干什么?

#7


是在Linux服务器上操作吗?
是要写C程序,还是shell脚本,还是在终端上直接输命令?

date是Linux最常见的命令之一,你不是不知道吧?

#8


date +%Y%m%d%H -d  '-1 hours'
这个命令是可以的啊,具体如下:
[root@192-168-1-12 ~]# date
Fri Aug 30 15:13:18 CST 2013
现在的时间是2013083015
使用date +%Y%m%d%H -d  '-1 hours'后,结果如下:
[root@192-168-1-12 ~]# date +%Y%m%d%H -d  '-1 hours'
2013083014

#9


引用 8 楼 px_19870606 的回复:
date +%Y%m%d%H -d  '-1 hours'
这个命令是可以的啊,具体如下:
[root@192-168-1-12 ~]# date
Fri Aug 30 15:13:18 CST 2013
现在的时间是2013083015
使用date +%Y%m%d%H -d  '-1 hours'后,结果如下:
[root@192-168-1-12 ~]# date +%Y%m%d%H -d  '-1 hours'
2013083014

不好意思,不知你们用的是什么linux?
一下是我的结果:
[u@H /ngboss/mddms/interface/boss]$date +%Y%m%d%H -d  '-1 hours'
Invalid character in date/time specification.
Usage: date [-u] [+Field Descriptors]

#10


用的是redhat
不知你使用的是?

#11


date +%Y%m%d%H -d  '-1 hours'

ubuntu执行上面的命令得到正确的结果。

#12


不错!~~  学习了!~

#13


引用 9 楼 chinabhlt 的回复:
不好意思,不知你们用的是什么linux?
一下是我的结果:
[u@H /ngboss/mddms/interface/boss]$date +%Y%m%d%H -d  '-1 hours'
Invalid character in date/time specification.
Usage: date [-u] [+Field Descriptors]

你的date命令不支持那种语法,可以使用epoch来计算。参考:
http://bbs.chinaunix.net/thread-1772999-1-1.html

#14


该回复于2013-10-08 14:22:38被管理员删除

#15


date +%Y%m%d%H -d  '-1 hours'

#16


上述方法都是在Linux上的,如果在AIX上,怎么办呀,我man了一下,没有发现'-1 hours',要想获得一小时前估计复杂多了。

#17


引用 16 楼 dididimeme 的回复:
上述方法都是在Linux上的,如果在AIX上,怎么办呀,我man了一下,没有发现'-1 hours',要想获得一小时前估计复杂多了。

请看13楼的链接

#18


aix 没有date的函数,
计算某日前若干天的日期
#date=YYYYMMDD
#Usage:command date days
str=$1
days=$2
yy=`echo $str|cut -c 1-4`
mm=`echo $str|cut -c 5-6`
dd=`echo $str|cut -c 7-8`
sav_dd=$days
days=`expr $days - $dd`
while [ $days -ge 0 ]
do
        mm=`expr $mm - 1`
        [ $mm -eq 0 ] && mm=12 && yy=`expr $yy - 1`
        aaa=`cal $mm $yy`
        bbb=`echo $aaa|awk '{print $NF}'`
        days=`expr $days - $bbb`
done
dd=`expr 0 - $days`
expr $dd : "^.$" > /dev/null && dd=0$dd
expr $mm : "^.$" > /dev/null && mm=0$mm
echo $yy$mm$dd

#19


引用 5 楼 songsong33 的回复:
Quote: 引用 4 楼 chinabhlt 的回复:

Quote: 引用 1 楼 songsong33 的回复:

date -d '-1 hours'

你这个是什么呀,我怎么运行呀,我看也得不到正确结果呀,当时间变为:2013083000时,其实输出的时间是:2013082923

shell命令,你在命令行输入 

date +%Y%m%d%H -d  '-1 hours'

'-1 hours'是-d参数的参数,即获取上一个小时的时间;
+%Y%m%d%H是输入格式
厉害,shell编程怎么学,感觉很高大上啊

#20


多看man,多尝试。

#21