问题标签 [time-t]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2030 浏览

c - 在 C 中将 time_t 设置为下一个晚上 10 点?

我想在晚上 10 点将 time_t 变量设置为下一个日期/时间。例如,如果是晚上 11 点,它会将 time_t 设置为第二天(23 小时后)晚上 10 点,或者如果是下午 5 点,它将设置为晚上 10 点(5 小时后)。

我可以想到很多方法来做到这一点(例如计算直到下一个晚上 10 点的秒数并添加该值),但它们都感觉像是一种相当老套的方法。实现这一目标的最佳方法是什么?

0 投票
1 回答
888 浏览

c - 当自纪元以来的秒数 > LONG_MAX 时会发生什么?

对于家庭作业,我正在编写一个处理大量time_t对象的程序。我考虑过检查它们是否溢出,但后来我想到如果它们溢出,我们都会遇到一些麻烦。

有这方面的计划吗?当自纪元以来的时间超过存储时会发生什么?

0 投票
0 回答
1377 浏览

c++ - 将 http 日期标头字符串转换为 time_t

我想将以“Wed, 07 Mar 2012 09:58:26 GMT”格式返回给我的 http 标头字段“Date”转换为一个time_t值。

我不确定 http 标头中是否有此字段的标准格式。

我看到了这个:从字符串解析日期/时间(提升?),但我不知道我是否可以为我提到的格式做一个方面。

此外,我需要可移植的功能。

我自己可以很容易地解析它,但我希望有更好、更快、更安全的方法。

0 投票
4 回答
1366 浏览

c++ - 表示 time_t 之间的差异

time_t为什么方法返回的两个 s之间的差异difftime( time_t t1, time_t t2)是 a double?我看不出精度要求从何而来。

0 投票
1 回答
1190 浏览

c - 有什么方法可以让 HP-UX 11.31(IA64) 支持 64-bit time_t

我很惊讶在这个 HP-UX 11.31(IA64) 中得知 long 和 time_t 类型是 4 字节大小。我可以问为什么吗?

我的环境:

我的代码:

任何人都可以帮助我找到一种通过 aCC 将 time_t 设置为 64 位的方法吗?

0 投票
3 回答
7979 浏览

c - 使用 strftime() 获取 UTC 时间戳

我正在尝试使用以下strftime函数将当前 utc 时间编码为字符串:

到目前为止一切顺利:nowLocal包含我的时区 (CET) 中的当前时间,nowUtc包含 utc 时间,差异完全tm_gmtoff取决于值:

然后我strftime()"%s"格式调用以获取自纪元以来的秒数:

结果对我来说似乎很奇怪。strftime()我希望从两个调用中得到完全相同的字符串,因为%s格式描述为:

自纪元以来的秒数,即自1970-01-01 00:00:00 UTC. 除非闰秒支持可用,否则闰秒不计算在内。

但我得到了两个不同的值:

而且区别不是7200 ( tm_gmtoff) 而是3600。谁能解释这种行为?或者它是一个错误?

我这样做的原因是我需要通过网络传输时间值,并将其与目标机器上可能处于不同时区的当前时间进行比较。在目标机器上我想:

但我得到了:

所以无论如何都要根据当前时区strptime()设置。tm_zone但即使我会使用timelocal()而不是timegm()我不会得到正确的值,因为它应该是11:27:28 CEST而不是12:27:28 CEST。这个错误是否与不同的结果有关strftime()

对后面的部分有任何评论吗?

0 投票
1 回答
2015 浏览

c++ - Formatting mtime from stat(system call)

So I'm writing a program to mimic the "find" command in linux. I have everything taken care of, but I cannot figure out how to format the string from ctime, mtime and atime.

I know the arguments are struct time_t, but I can't find to convert it to a formatable string.

Part of what I have is below. it won't work due to the error " error: cannot convert '__time_t' to 'const tm' for argument '4' to 'size_t strftime(char*, size_t, const char*, const tm*)'

Ideally, I want something like this:

where sb is the stat struct. It should print in the format: HH:MM:SS-MM/DD/YY

I'm sure the answer is something simple, but I cannot figure it out.

0 投票
4 回答
2208 浏览

c++ - 检查 time_t 是否在其他 time_t 之间并有一定的误差

我有两个 time_t 变量:timeA 和 timeB。

我想要做的是检查 timeA 是否与 timeB 相同。但是,我知道在某些情况下它们不会完全相同,并且它们两者之间可能存在 1 或 2 秒的差异,所以我真正想要检查的是:

有可能这样做吗?

我想一种选择是不使用 time_t,而是将 timeB 保留为 tm 结构,并且在比较之前,减去两秒并创建 time_t timeBminus,然后添加四秒并创建 time_t timeBplus。问题是我将比较几百万个 timeA - timeB 对,并希望它尽可能简单和快速。

我该怎么做?

0 投票
7 回答
22984 浏览

c++ - 将日期和时间数字转换为 time_t 并指定时区

我有以下整数:

它们的值分别是:2012062712、。如果我在我的应用程序的其他地方选择了“UTC”,我想表示“2012/06/27 12:47:53 UTC”的日期时间,或者如果我选择了“2012/06/27 12:47:53 AEST”的日期时间在我的应用程序的其他地方选择了“AEST”。4753

我想将其转换为time_t,这是我目前用来执行此操作的代码:

所以我正在使用tm structand mktime,但是这不能很好地工作,因为它总是假设我的本地时区。

这样做的正确方法是什么?

所以下面是我到目前为止提出的解决方案。它基本上做三件事之一:

  1. 如果是 UNIX,只需使用timegm
  2. 如果不是 UNIX
    1. 或者,使用 UTC 纪元和本地纪元之间的差异作为偏移量进行数学运算
      • 保留:数学可能不正确
    2. 或者,将“TZ”环境变量临时设置为 UTC
      • 保留:如果/当此代码需要多线程时会出错

NBStringBuilder是一个内部类,对于这个问题来说并不重要。

更多信息:

我知道这可以使用 boost 等轻松完成。但这不是选项。我需要它以数学方式完成,或者使用 ac 或 c++ 标准函数,或它们的组合。

timegm似乎解决了这个问题,但是,它似乎不是 C / POSIX 标准的一部分。这段代码目前在多个平台(Linux、OSX、Windows、iOS、Android (NDK))上编译,所以我需要找到一种方法让它在所有这些平台上工作,即使解决方案涉及#ifdef $PLATFORM类型的东西。

0 投票
2 回答
3000 浏览

c - 如何将 32 位 time_t 值转换为 64 位 time_t

我正在研究嵌入式系统。我们的平台是 32 位的,所以time_t大小是 32 位的。

现在我想将结构作为char数组发送到 Windows 7 计算机。我的结构的字段之一是time_t. 我不能改变结构。

所以我必须使用 32 位变量将时间值发送到 Windows 机器,当 char 数组到达时,我必须将 32 位 unsigned int 值转换为 64 位time_t

我想我不能直接将 32 位整数转换为 64 位time_t,因为 32 位time_t从 1970 年开始,而 64 位从 1600 年开始。

那么有什么方法可以转换吗?