我有一个格式为“yyyymmdd”的字符串。它是bash中的一个字符串,我希望将它转换为日期,以便可以在其上使用所有其他日期函数。
“20121212”字符串变为“20121212”日期,格式为“%Y%m%d”。
答案 0 :(得分:26)
这对我有用:
date -d '20121212 7 days'
date -d '12-DEC-2012 7 days'
date -d '2012-12-12 7 days'
date -d '2012-12-12 4:10:10PM 7 days'
date -d '2012-12-12 16:10:55 7 days'
然后您可以格式化输出添加参数'+%Y%m%d'
答案 1 :(得分:10)
我们可以使用日期-d选项
1)将格式更改为"%Y-%m-%d"格式,即20121212至2012-12-12
date -d '20121212' +'%Y-%m-%d'
2)从给定日期= 20121212获取下一天或最后一天。比如使用特定格式获取过去7天的日期
date -d '20121212 -7 days' +'%Y-%m-%d'
3)如果我们在某个变量中获取日期,请说dat
dat2=$(date -d "$dat -1 days" +'%Y%m%d')
答案 2 :(得分:3)
日期仅适用于GNU日期(通常附带Linux)
对于OS X,有两种选择:
更改命令(已验证)
#!/bin/sh #DATE=20090801204150 #date -jf "%Y%m%d%H%M%S" $DATE "+date \"%A,%_d %B %Y %H:%M:%S\"" date "Saturday, 1 August 2009 20:41:50"
http://www.unix.com/shell-programming-and-scripting/116310-date-conversion.html
从Coreutils下载GNU实用程序 - GNU核心实用程序(尚未验证) http://www.unix.com/emergency-unix-and-linux-support/199565-convert-string-date-add-1-a.html
答案 3 :(得分:2)
只需使用date命令的-d选项,例如
date -d '20121212' +'%Y %m'