我们如何根据unix中的给定日期获得工作日

Div*_*a S 7 unix bash shell datetime unix-timestamp

从给定的日期 %m-%d-%Y格式中我们应该确定它是哪一天。

示例:对于日期09-01-2017输出应该是Friday

nag*_*547 5

很简单。只需使用带有正确选项的 date 命令本身即可。

$ date -j -f '%m-%d-%Y' "09-01-2017" +'%A'
Friday
Run Code Online (Sandbox Code Playgroud)

  • 由于这既不是 GNU“日期”也不是 BSD“日期”,您可能需要指定它是什么“日期”。我猜是macOS? (4认同)

Raj*_*jan 3

DayOfWeek=$(date +%A)
Run Code Online (Sandbox Code Playgroud)

这将产生星期几monday-sunday 如果您输入的日期严格采用格式MM-DD-YYYY,请使用以下内容

IFS='-' read -ra ADDR <<< "09-01-2017"
formattedDate=${ADDR[2]}-${ADDR[0]}-${ADDR[1]}
date -d  $formattedDate +%A
Run Code Online (Sandbox Code Playgroud)

第一行标记日期的组成部分,第二行重新排列它们