问题标签 [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 投票
0 回答
685 浏览

c++ - strptime 字符串时间解析错误成 time_t

我正在尝试从 mysql 获取 %Y-%m-%d %H:%M:%S 格式的时间值并将其存储在 time_t 中。我为此使用了两个函数。

但在我看来,它没有正确解析分钟和小时。这是一个可能的错误还是我错过了什么。

这是输出。

0 投票
3 回答
128 浏览

c++ - 将 std::string 写入可比较的 *time* 解析器,该解析器可能会失败

我知道 size_t 是无符号的,因此不允许使用负值,据我所知,time_t 是有符号的,因此我可以将 -1 分配给 size_t。但是,对于 time_t 我并不完全确定。如果我通过头文件遵循定义,我会在这里结束:

,然后在这里:

最后

我不太确定__SYSCALL_SLONG_TYPE是什么,但我猜它是有符号的 long。不幸的是,即使做了这个跟踪,我也只能希望其他 c++11 平台也有相同的实现。我仍然不确定这对所有人来说都是合法的和明确的:

当然,对 time_t 进行签名是有意义的,因为可以有负时间偏移,例如对时区建模。但另一方面,让它无符号是有意义的,因为在 1970 年之后还有很多秒要计算。所以常识是双向的 :) 在 time_t 上谷歌搜索返回了这个:

“由于历史原因,它通常实现为一个整数值,表示自 UTC 1970 年 1 月 1 日 00:00 小时以来经过的秒数(即 unix 时间戳)。尽管图书馆可以使用替代时间表示来实现这种类型。”

来源:http ://www.cplusplus.com/reference/ctime/time_t/

并在同一页上:“可移植程序不应直接使用这种类型的值,而应始终依赖对标准库元素的调用将它们转换为可移植类型。”

所以 time_t 在所有系统上都没有明确定义,但是 time() 返回一个 time_t: 所以我不会是第一个在接口中导出它的人。我应该使用什么其他类型?

我问这两个原因:

  • 速度:使用结构体,如struct tm很慢,因为它有更多字节,因此复制它或将其与另一个 struct tm 进行比较将比使用 long 慢。
  • 排序:我想要一个快速的日期数据类型,它允许我执行 a < b 来确定日期 a 和 b 中的哪一个在前。

问题:由于 time_t 不是所有平台上定义明确的时间表示,我可以使用哪种 (1) 快速和 (2) 可比较的数据类型是可移植的?

例如,关于 time_t 的排序:

time_t在所有平台上都不会受到污染吗?

0 投票
1 回答
297 浏览

c - 时间服务器时间类型问题

所以我在 linux 上用 C 语言编写了一个时间服务器-客户端应用程序,它应该将当前的 unix 时间戳发送到客户端。

它一切正常,但我被告知 time_t 可能并不总是相同的大小和字节顺序。我如何确保我发送的时间客户总是能理解?

到目前为止,我只是做

并发送。

我在 google 和 stackoverflow 上进行了搜索,但似乎其他人只是发送了 ctime() 或 strftime() 生成的时间字符串。

提前致谢!

0 投票
1 回答
1327 浏览

c++ - 比较文件统计时间

我需要注意在基于 Unix 的系统上对文件的修改,但我无权访问 Boost。我想知道以下逻辑是否合理。我认为它可能效率低下,而且我知道我在 while 循环中根本不睡觉而浪费了大量的周期,但我没有估计文件在修改之间要经过多长时间,我需要知道相对较快:

0 投票
4 回答
13261 浏览

c++ - 使用比较运算符比较 time_t 值

我有 2 个time_t值,我想找出哪个更大。

time_t在我的平台内部__int64。我可以使用<,>==运算符来比较值吗?我不想知道两个时间值之间的差异。

代码只会在 Windows 上运行,所以我不关心可移植性。

以这种方式比较值是否正确?

0 投票
3 回答
18769 浏览

c - 如何定义要运行几秒钟/几分钟的循环

我的目的是在while定义的时间内执行一个循环(例如,本示例为 90 秒)。它不必精确到 90 秒,但 1-2 秒的误差是可以接受的。我确实为此目的使用了clock()`函数:

当我在笔记本电脑(x86、3.13 内核、gcc 4.8.2)上运行它时,我的秒表测量72 秒才能完成。(需要 1000 秒才能elapsed在我的笔记本电脑上达到秒级精度)

当我在 ARM 设备(armv5tejl,3.12 内核,gcc 4.6.3)上运行它时,完成代码需要58 秒。(我需要在armv5上使用)100elapsed

我在室温下运行代码,所以时钟应该是稳定的。我知道内核使线程休眠并且唤醒它们的时间不准确,等等。因此,正如我之前所说,我不希望得到一个完美的时机,但它应该有一定的准确性。

我曾尝试仅使用usleep(甚至nanosleep),但分辨率也不好。最后,我提出了获取系统时间(小时、分钟、秒)的底部代码,然后计算经过的时间。它的工作精度很高。

我想知道是否有另一种使用成本更低的解决方案?

最后,我需要在pthread.

0 投票
1 回答
1442 浏览

c++ - 将本地时间转换为 time_t (C++)

我在 C++ http://aliarth.lt/date.cpp上创建了 date() 函数,但我遇到了一个localtome_to_time()转换问题。有谁知道 local_time 变量如何:

转换为time_t?

0 投票
1 回答
106 浏览

c - 从 C 中传递的 datetime 中生成 UNIX 时间戳

我正在将一个 C 应用程序从 Solaris 移植到 RedHat,而这个功能在 RedHat 上不能很好地工作(我需要你的帮助来确定原因):

基本上,它以指定格式从作为字符串传入的日期时间生成 UNIX 时间戳。

但是,它似乎无法正常工作(对于 effPaymentDate 可以正常工作,为 CohDueDate 提供错误的日期 - 即 2543 年) - 任何想法为什么?

0 投票
2 回答
6503 浏览

linux - Linux 内核中的 64 位 time_t

我已经编译了内核 3.19.1,但time_t. 只是一个简单的程序,cout << sizeof (time_t);大小为 4 个字节,而不是我的意图是 8 个字节。

我应该在 make menuconfig 期间打开特定选项吗?

0 投票
3 回答
13719 浏览

c++ - C/C++ time_t 以微秒为单位

该程序以秒为单位返回时间。我需要在微秒内返回它。