相关疑难解决方法(0)

为日期添加秒数

我需要在日期中添加秒数.例如,如果我有一个日期,例如2009127000000,我需要将秒添加到此日期.另一个例子,加上50秒到20091231235957.

这可能在C?

c unix datetime

13
推荐指数
3
解决办法
2万
查看次数

如何在C++中将UTC日期和时间转换为time_t?

我想将年,月,日等数字中给出的UTC日期和时间转换为time_t.有些系统提供类似mkgmtimetimegm用于此目的的功能,但这不是标准的,在我的Solaris系统上不存在.

到目前为止我找到的唯一解决方案是使用setenv将本地时区设置为UTC,然后调用mktime.但是,这种方法不是线程安全的,慢的,不可移植的,甚至会在我的系统上产生内存泄漏.

我也看到了尝试使用gmtime然后将其添加到结果的方法来确定当前UTC偏移的方法mktime.但据我所知,所有这些方法都有差距.毕竟,从本地时间到UTC的转换并不是唯一的.

您认为什么是最佳解决方案?

c++ time-t

7
推荐指数
2
解决办法
6231
查看次数

假设time_t以秒为单位是多么安全?

我经常做很多计算,通过添加秒来构建相对于其他时间对象的时间对象.该代码应该在嵌入式设备和服务器上运行.大多数文件说它time_t是一些算术类型,通常存储自纪元以来的时间.假设time_t存储了几秒钟后,它有多安全?如果我们可以假设,那么我们可以只使用加法和减法,而不是localtime,mktimedifftime.

到目前为止,我已经通过使用a来解决问题constexpr bool time_tUsesSeconds,表示假设time_t使用秒是否安全.如果它是不可移动的假设time_t是在几秒钟内,有没有办法自动初始化该常量?

time_t timeByAddingSeconds(time_t theTime, int timeIntervalSeconds) {
    if (Time_tUsesSeconds){
        return theTime + timeIntervalSeconds;
    } else {
        tm timeComponents = *localtime(&theTime);
        timeComponents.tm_sec += timeIntervalSeconds;
        return mktime(&timeComponents);
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ time date time-t

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×2

time-t ×2

c ×1

date ×1

datetime ×1

time ×1

unix ×1