问题标签 [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.
c - 在 C 中将 time_t 设置为下一个晚上 10 点?
我想在晚上 10 点将 time_t 变量设置为下一个日期/时间。例如,如果是晚上 11 点,它会将 time_t 设置为第二天(23 小时后)晚上 10 点,或者如果是下午 5 点,它将设置为晚上 10 点(5 小时后)。
我可以想到很多方法来做到这一点(例如计算直到下一个晚上 10 点的秒数并添加该值),但它们都感觉像是一种相当老套的方法。实现这一目标的最佳方法是什么?
c - 当自纪元以来的秒数 > LONG_MAX 时会发生什么?
对于家庭作业,我正在编写一个处理大量time_t
对象的程序。我考虑过检查它们是否溢出,但后来我想到如果它们溢出,我们都会遇到一些麻烦。
有这方面的计划吗?当自纪元以来的时间超过存储时会发生什么?
c++ - 将 http 日期标头字符串转换为 time_t
我想将以“Wed, 07 Mar 2012 09:58:26 GMT”格式返回给我的 http 标头字段“Date”转换为一个time_t
值。
我不确定 http 标头中是否有此字段的标准格式。
我看到了这个:从字符串解析日期/时间(提升?),但我不知道我是否可以为我提到的格式做一个方面。
此外,我需要可移植的功能。
我自己可以很容易地解析它,但我希望有更好、更快、更安全的方法。
c++ - 表示 time_t 之间的差异
time_t
为什么方法返回的两个 s之间的差异difftime( time_t t1, time_t t2)
是 a double
?我看不出精度要求从何而来。
c - 有什么方法可以让 HP-UX 11.31(IA64) 支持 64-bit time_t
我很惊讶在这个 HP-UX 11.31(IA64) 中得知 long 和 time_t 类型是 4 字节大小。我可以问为什么吗?
我的环境:
我的代码:
任何人都可以帮助我找到一种通过 aCC 将 time_t 设置为 64 位的方法吗?
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()
?
对后面的部分有任何评论吗?
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.
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 对,并希望它尽可能简单和快速。
我该怎么做?
c++ - 将日期和时间数字转换为 time_t 并指定时区
我有以下整数:
它们的值分别是:2012
、06
、27
、12
、。如果我在我的应用程序的其他地方选择了“UTC”,我想表示“2012/06/27 12:47:53 UTC”的日期时间,或者如果我选择了“2012/06/27 12:47:53 AEST”的日期时间在我的应用程序的其他地方选择了“AEST”。47
53
我想将其转换为time_t
,这是我目前用来执行此操作的代码:
所以我正在使用tm struct
and mktime
,但是这不能很好地工作,因为它总是假设我的本地时区。
这样做的正确方法是什么?
所以下面是我到目前为止提出的解决方案。它基本上做三件事之一:
- 如果是 UNIX,只需使用
timegm
- 如果不是 UNIX
- 或者,使用 UTC 纪元和本地纪元之间的差异作为偏移量进行数学运算
- 保留:数学可能不正确
- 或者,将“TZ”环境变量临时设置为 UTC
- 保留:如果/当此代码需要多线程时会出错
- 或者,使用 UTC 纪元和本地纪元之间的差异作为偏移量进行数学运算
NBStringBuilder
是一个内部类,对于这个问题来说并不重要。
更多信息:
我知道这可以使用 boost 等轻松完成。但这不是选项。我需要它以数学方式完成,或者使用 ac 或 c++ 标准函数,或它们的组合。
timegm
似乎解决了这个问题,但是,它似乎不是 C / POSIX 标准的一部分。这段代码目前在多个平台(Linux、OSX、Windows、iOS、Android (NDK))上编译,所以我需要找到一种方法让它在所有这些平台上工作,即使解决方案涉及#ifdef $PLATFORM
类型的东西。
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 年开始。
那么有什么方法可以转换吗?