【问题标题】:Convert Cron syntax to UTC format将 Cron 语法转换为 UTC 格式
【发布时间】:2017-12-15 13:28:29
【问题描述】:

我有需要转换为 UTC 格式的 cron 数据

我有一个代表 cron 数据的三个变量,例如:

hour_start
week
weekday

这些值将用于安排 cron 作业以运行脚本。后来我意识到我需要进行 REST 调用并传递一个 UTC 格式的参数。

如何使用 ruby​​ 将上述值转换​​为 UTC 格式的日期时间值?

示例值:

小时开始:2
周:2
工作日:1

上面应该创建一个UTC格式的值,例如2017-07-03 02:00:00

7 月第二周的星期一凌晨 2 点。

提前致谢!

【问题讨论】:

  • 请告诉我们您已经尝试过什么,以及您在编写代码时遇到的具体问题。还有七月是从哪里来的?是当前月份吗?
  • 我什至不知道从哪里开始。我知道 bash 中的 CAL 函数和一些解析,这可能是我需要去的地方,但我必须在 Ruby 中执行此操作,我不知道如何将一周转换为日期。
  • @mudasobwa 我标记你没有建设性,因为你没有任何帮助,而且完全粗鲁。
  • 你可以看看我回答了多少个很有建设性的问题。问题应该满足的唯一条件是遵守本网站规则,而不是“嘿,我在这里洗澡时免费为我编码。”
  • @jacksonecac 我的理解是你通过当前的UTC时间并获得下一个cron表达式的出现。如果是这样,那么试试这个 ruby​​ 库github.com/siebertm/parse-cron“解析 cron 表达式并计算给定日期之后的下一次出现”

标签: ruby cron


【解决方案1】:

Cron 作业未指定在特定日期运行,而是指定为在重复时间运行。如果要转换为2017-07-03 02:00:00 之类的格式,则需要指定要转换的时间。

正如 derloopkat 提到的,parse-cron Gem 应该做你想做的事:https://github.com/siebertm/parse-cron

它允许将 Time 对象(可能从 Time.now 获取)传递给 nextlast 方法,以分别在指定时间之后或之前获取第一个运行时间。

【讨论】:

  • 您好,您的第一个答案。也许您可以通过减少对链接的依赖并直接在此处使用 Gem 添加和示例来改进它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2019-09-26
相关资源
最近更新 更多