【问题标题】:Convert seconds since last sunday midnight to date and time将自上周日午夜以来的秒数转换为日期和时间
【发布时间】:2016-03-29 06:35:50
【问题描述】:

我知道自上周日午夜 UTC 以来已经过去了多少秒。是否可以从此信息中检索当前的 UTC 日期和时间?

我知道如何获取时间(模数),但是日期呢?由于闰日、年份等原因,我无法理解它。

【问题讨论】:

  • 图书馆可能会通过抽象出时间记录的血腥细节来简化事情。当然,这取决于您的语言,我不知道您使用的是哪种语言
  • 我添加了一些标签。因此,考虑到库的使用,我正在使用非常有限的选项来开发嵌入式 Linux。我或多或少受限于 c++ (C++03) 内置方法和BusyBox
  • 哎哟!我希望有一个简单的import datetime; datetime.fix_all_my_problems() python 解决方案:D 时钟/日历数学不应该太难,但闰日/年可能是另一回事(你清楚地知道)。一些 SO 链接:converting-number-of-days-to-years-including-leap-yearsleap-year-calculation-homework
  • 我认为无论如何不可能得到约会。
  • 也许不是。 This question 有一些很好的代码和有趣的 cmets 真正突出了这些问题。我知道您正在处理 UTC 而不是“UTC 到当地时间”,但这是一个很好的阅读

标签: c++ time embedded-linux utc


【解决方案1】:

如果您知道A 的日期,则只能使用B = A + n 检索点B 的日期。这个计算在任何方面都不是微不足道的,因为我们的日历是如此复杂。顺便说一句:last sunday 只是一个相对日期。

借助 BusyBox,您可以尝试使用 date 工具,该工具能够进行诸如

date +"%s" --date="last sunday"

为你。例如(n = number of seconds passed from last sunday

A_s=$(date +"%s" --date="last sunday")
let 'B_s=A_s + n'
date -u --date="@""${B_s}"

在您的代码中作为 shell 脚本调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 2012-10-03
    • 2018-07-10
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多