linux - 从 datetime.now 算起已过去 15 分钟

标签 linux datetime linux-kernel

我每隔 15 分钟就会接收一次卫星数据。 我正在调用脚本 日期-d“-15 分钟” */15 * * * * myscript.sh 但有时,卫星可能会延迟 3-10 分钟。 在这种情况下,我(myscript.sh)无法捕获该文件。

#

那么,有什么解决方案可以使用日期选项或任何选项来选择过去 15 分钟的倍数吗?

最佳答案

如果您需要每 15 分钟运行一次脚本

您可以获取带有日期“+%s”的当前 unix 时间戳,通过一些简单的数学运算找到当前刻钟(我的示例是在 bash 中),然后以更好的日期格式将其打印回来:

curdate=`date "+%s"`
curquarter=$(($curdate - ($curdate % (15 * 60))))
date -d"@$curquarter"

从时间戳设置当前日期和时间的 @ 语法是 GNU 的 date 扩展,如果它在您的操作系统上不起作用,您可以这样做(不要忘记指定 UTC,否则它将不起作用):

date -d"1970-01-01 $curquarter seconds UTC"

关于linux - 从 datetime.now 算起已过去 15 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54512413/

相关文章:

C# bool 语句为看似未连接的 double.parse(string) 抛出奇怪的异常

linux - 尝试插入访问导出符号的模块时出现 "Invalid parameters"错误

memory-management - 从用户进程的mm_struct或vm_area_struct中读取数据

c++ - 为什么此代码会导致段错误?

c++ - 使用 C++ 在 Linux 中创建定时器队列

javascript - 使用 node.js 或 javascript 在后端读取套接字 API

c# - 可为空的日期时间的 DateTime.Ticks

c++ - 更有效地使用 fork() 和写时复制内存共享

Javascript Date.getTime 函数没有返回正确的值或者我做错了什么

linux - GICD_ISENABLER 和 GICD_ICENABER 禁用中断的区别