2012-09-17 52 views
1

简单的bash问题...我想,我是新的。bash中的日期格式

我从系统时间日期。减去

date_from=`date -d "30 minutes ago"` 

后,我想格式化 'YYYY-MM-DD'

我怎么能做到这一点的结果$date_from

回答

5
date -d "30 minutes ago" +%Y-%m-%d 

这是非常有可能的,虽然,31分钟前它是在同一天:)

+0

谢谢! 我知道迈克尔,这是脚本每24分钟运行一次24小时^ _^ – Goonie

+0

不客气。我怀疑这样的事情;-) –

4

您可以附加一个格式字符串:

date -d "30 minutes ago" +"%Y-%m-%d" 
-1

正如你不能保证30分钟前是同一天,你最好的解决方案是将当前日期/时间从1970年转换为秒,减去30 * 60秒,然后将其转换回日期。

我可以在脚本中做到这一点,不知道如何在一行中做到这一点。

喜欢的东西:

CURRENT=date +%S 
CURRENTMINUS30=expr $CURRENT - (30*60) 
OLD = date [email protected]`CURRENTMINUS30` 

这是未经测试,但。我会尽量让脚本工作并发布它的内容,也许其他人可以在一行中完成。

+0

我没有看到需要首先转换为UNIX时间戳。如果有必要,'日期'可以在一天内处理更改。 – chepner

+0

好的。完全误解了其他答案。没有意识到“30分钟前”是'日期'的有效输入!我只是认为他们是未完成的答案。每天都是学校的一天。 – Clarkey