计算 N 天前的日期,可否用时间戳直接减?

2022-09-15 08:18:35 +08:00
hunk  hunk

为何我相减后,输出时间都是减了 10 天,是指针问题? now 和 s_tm 声明为两个变量了,求指教。

time_t now = time(0);

tm *e_lt = gmtime(&now);
time_t s_tm = time(0);

s_tm -=60*60*24*10;

tm *s_lt = gmtime(&s_tm);
4148 次点击
所在节点   C++  C++
23 条回复
julyclyde
julyclyde
2022-09-16 12:38:22 +08:00
@mxT52CRuqR6o5 用闰秒公布之前和之后的两个版本的 tzdata 去解读闰秒之后的同一个 timestamp 会得到不同的 utc 时间
mxT52CRuqR6o5
mxT52CRuqR6o5
2022-09-16 12:50:04 +08:00
@julyclyde
按照 wiki 上举的那个例子,正闰秒多出来的那一秒会和上一个 utc 秒拥有同一个 unix 时间戳,不应该会出现你说的这种情况啊
julyclyde
julyclyde
2022-09-16 17:29:51 +08:00
@mxT52CRuqR6o5 你找个闰秒时刻,按照我给你的两种条件,双向计算一下试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/880134

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX