gpt4 book ai didi

macos - 如何在 OS X 上使用 date 命令回显任何时区自午夜以来的分钟数?

转载 作者:行者123 更新时间:2023-11-29 09:21:29 25 4
gpt4 key购买 nike

这是不起作用的地方:

> echo $(( ($(date +%s) - $(date +%s -d$(date +%Y-%m-%d))) / 60 ))
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

我也试过:

> echo $(date +%s -f%Y-%m-%d $(date +%Y-%m-%d))

以下有效,但仅适用于标准时间期间会中断的固定 UTC 偏移量:

> echo $[ ( ( $(date "+%s") - 28800 ) % 86400 ) / 60 ]

引用:OS X date manual

最佳答案

自午夜以来的分钟数(或秒数)可以直接根据时间单独计算。

echo $(( $(date "+10#%H * 60 + 10#%M") ))  # Minutes since midnight
echo $(( $(date "+(10#%H * 60 + 10#%M) * 60 + 10#%S") )) # Seconds since midnight

请注意,这只需要 date 的最低限度支持,因此可以与 GNU 或 BSD date 一起使用。

这通过让 date 输出一个字符串来实现,该字符串可以直接传递给 shell 的算术表达式构造。

感谢 Petesh 指出需要强制将带前导零的数字视为小数。

关于macos - 如何在 OS X 上使用 date 命令回显任何时区自午夜以来的分钟数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30370138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com