Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
macOS日期上的zsh修改给定日期的输出(无脚本)_Macos_Date_Zsh - Fatal编程技术网

macOS日期上的zsh修改给定日期的输出(无脚本)

macOS日期上的zsh修改给定日期的输出(无脚本),macos,date,zsh,Macos,Date,Zsh,我知道date+%u可以获取今天的星期几 我想获得我输入的任意日期的整数-如果可能,以我选择的格式(例如%YYmmdd)确定,最后找到它: 日期-j-f%Y%m%d+%u 20200910 这是因为macOS上的date不需要输入自定义日期(仅供参考,如何让-v像我一样工作^^) 此外,-f只影响输入格式(它实际上是手册页中的第二个单词,但我不止一次忽略了它) 在不设置日期的情况下使用-f需要-j 希望这将为将来的某人腾出时间;) 编辑: 在输出格式之前指定输入格式似乎很重要(参见下面@chep

我知道
date+%u
可以获取今天的星期几

我想获得我输入的任意日期的整数-如果可能,以我选择的格式(例如%YYmmdd)

确定,最后找到它:

日期-j-f%Y%m%d+%u 20200910

这是因为macOS上的date不需要输入自定义日期(仅供参考,如何让
-v
像我一样工作^^)

此外,-f只影响输入格式(它实际上是手册页中的第二个单词,但我不止一次忽略了它)

在不设置日期的情况下使用
-f
需要
-j

希望这将为将来的某人腾出时间;)

编辑: 在输出格式之前指定输入格式似乎很重要(参见下面@chepner的注释)


(也要注意引号)

开关
date
accepts不是外壳。这纯粹是一个约会。您使用的是
date
的哪个实现(即您使用的是什么操作系统)?我修改了我的问题,谢谢您指出这一点out@jens是否可以编写包含日期(或任何其他类似日期)的脚本命令,但在大多数平台上仍然有效,还是我们必须在脚本中进行区分?@matt:如果你要编写一个脚本来实现目标,(1)不要在问题的标题中没有脚本,以及(2)显示你到目前为止编写的脚本以及你遇到的问题。@user1934428-我真的没有编写脚本。这只是jens回答的后续问题:)thx,但是
-d
在macOS上不起作用,这是我首先遇到的问题。关于输入和输出格式的顺序,输入格式是通过
-f
选项指定的,而输出格式是一个普通的位置参数(尽管是以
+
开头的),用于解析命令行参数的BSD库需要在其他参数之前添加选项。这与相应的GNU库形成对比,GNU库扫描整行以查找选项。thx:很高兴知道:D。你有没有想过,这种行为的好处是什么,这使得苹果保留了它?苹果正在努力最重要的是,他们使用的是BSD工具链,因为操作系统本身就是基于BSD的。不过,你可能会问,为什么GNU允许混合选项和参数。两者都不比另一个更好或更差;它们都只是长期存在的惯例。也就是说,苹果似乎不太愿意(至少可以这么说)分发GNU或其他GPL许可软件,基于他们拒绝升级
bash
,以及最近将
bash
替换为
zsh
(以公平的方式发布)作为默认用户shell的举动。来自BSD对我解释得很清楚(考虑到macOS的混合内核)(特别是OSF MK的影响)这是一个经过深思熟虑的决定)。关于“两个都不是最坏的”-好吧,在一种情况下,你必须在没有任何好处的情况下观察订单。让我更倾向于选择另一个选项(忽略原因的背景,假设使用完整的传统工具集,你无论如何都必须移植或映射某物(这显然不是真的!)。Thx再次澄清-这一声明主要是为了帮助那些像我一样也对上述内容感到困惑的人:)
$ date +%u -d "2020-09-10"
4