问题标签 [boost-date-time]
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++ - 如何获取当前的 UTC 偏移量(时区)?
如何获取当前的 UTC 偏移量(如时区,但只是当前时刻的 UTC 偏移量)?
我需要像“+02:00”这样的答案。
c++ - dynamic_cast 的性能?
在阅读问题之前:
这个问题不是关于使用dynamic_cast
. 它只是关于它的性能。
我最近开发了一个dynamic_cast
经常使用的设计。
在与同事讨论时,几乎每个人都说dynamic_cast
不应该使用它,因为它的性能很差(这些同事有不同的背景,在某些情况下彼此不认识。我在一家大公司工作)
我决定测试这种方法的性能,而不是仅仅相信它们。
使用了以下代码:
上面的代码使用boost::date_time
Linux 上的方法来获取可用值。
我dynamic_cast
一次执行了 3 次,测量它们的代码是相同的。
1 次执行的结果如下:
Cast1 持续时间:74 微秒
Cast2 持续时间:2 微秒
Cast3 持续时间:1 微秒
第一次施法总是花费 74-111 微秒,同一执行中的以下施法花费 1-3 微秒。
所以最后我的问题是:
真的dynamic_cast
表现不好吗?
根据测试结果它不是。我的测试代码正确吗?
为什么这么多开发人员认为如果不是,它就很慢?
c++ - 使用 Boost Date Time Library 和 Visual Studio 2008 时运行时检查失败
我是计算机科学专业的一年级学生,正在编写一个 c++ 程序,该程序对一组随机分配的浮点数进行冒泡排序,然后使用二分叉搜索来查找数组中最后一个元素的值(为了在计时代码时保持一致性)。
我想计时执行冒泡排序和二进制印章搜索,但 c++ 标准时间库只会给我第二级精度,这是不可用的,因为这段代码大部分时间都在 1 秒内执行。
我找到了 Boost,我正在尝试将其用作使用 Boost DateTime 库中的微秒时钟获取代码执行的亚秒级精度计时的方法。我使用的代码位于http://pastebin.com/U8D0s2hb。当我执行此代码时,我从 Visual Studio 2008 收到以下错误:
运行时检查失败 #0 - ESP 的值未在函数调用中正确保存。这通常是调用使用一种调用约定声明的函数和使用另一种调用约定声明的函数指针的结果。
罪魁祸首似乎是将时间作为 ptime 对象,但我不知道为什么,因为我以前从未见过运行时检查失败错误。
任何帮助表示赞赏,谢谢。
c++ - 如何将 boost::posix_time::ptime 转换为 time_t?
是否有一些“标准”方法或者我能做的最好的方法是直接通过减去来计算它gregorian::date(1970,1,1)
?
c++ - 将 pos_infin 作为超时传递给 timed_wait 时,年份超出有效范围
以下代码重现了该错误:
在我的系统上,使用 Visual Studio 2005 和 Boost 1.43,这会产生以下输出:
我希望它会死锁,等待条件变量永远得到通知。这似乎没有在任何地方记录,我也希望timed_wait
接受任何有效ptime
的 . 我做错什么了吗?这是一个错误,还是不打算无限超时?
c++ - Boost Date_Time问题编译一个简单的程序
我正在使用 Boost Date_Time 库编写一个非常愚蠢的程序。
好吧,我无法编译它,编译器无法识别类型...嗯,我使用了 Boost 库的许多功能,例如序列化等等...我正确地构建了它们,并且查看我的 /usr/local/lib 文件夹,我可以看到libboost_date_time.so 在那里(一个好兆头,这意味着我能够构建那个库)
当我编译时,我写了以下内容:
g++ -lboost_date_time main.cpp
但是当我指定库时它向我显示的错误与我没有指定任何库的错误相同。
这是什么?有谁知道?
错误是
main.cpp:在函数'int main(int,char**)'中:main.cpp:9:错误:'date'未在此范围内声明main.cpp:9:错误:预期';' 在'd' main.cpp:10 之前:错误:未在此范围内声明'd' main.cpp:10:错误:未在此范围内声明'nanosec' main.cpp:13:错误:预期为';' 在“今天”之前</p>
c++ - 获取与给定日期的 (local_timezone) 午夜对应的 time_t / timeval
给定 time_t 或 struct timeval,我如何获得当天午夜 EST/EDT(本地时区)的 timeval 或 time_t?假设本地时区是 EST/EDT,假设 time_t 对应于 2010-11-30 08:00:00 EST/EDT,预期的答案是 time_t 对应于 2010-11-30 00:00:00 EST /美东时间
尝试 1(不正确:因为它不处理 DST,并假设 EST/EDT 总是比 UTC 晚 5 小时):
尝试 2(不正确:因为它返回的 time_t 对应于 UTC 午夜时间,而不是 EST/EDT,本地时区):
我觉得应该有一个解决方案,涉及 (i) struct tm、mktime 或 (ii) boost::local_date_time 也许?
boost-date-time - boost::posix_time 在发布构建中失败
我想在每个程序运行时打开一个新的日志文件,所以我用当前时间创建一个文件名。
这在调试版本中完美运行,生成名称如下的文件
然而,相同的代码在发布版本中奇怪地失败了
顺便说一句,这也以同样的方式失败:
这有效:
我仍然很好奇为什么前两个版本在发布版本中失败,但在调试中工作。
c++ - 所有权/删除区域设置中的构面(std::locale)
我编写了以下函数来使用boost.date_time获取日期/时间字符串。
delete
我有一个关于对象的所有权/ 'ing 的快速问题facet
。std::locale 的构造函数delete
对facet
. 尝试使用shared_ptr
-wrapped 和堆栈分配的版本facet
- 两者都导致 seg-faults。此外,通过 valgrind 运行上述函数并没有显示任何泄漏(这可能意味着语言环境或流正在处理delete
'ing),但我只是想清楚我在这里做的是正确的事情。谢谢。
c++ - 获取当前时间作为 YYYY-MM-DD-HH-MM-SS 字符串
我试图以一种优雅的方式将当前时间作为“YYYY-MM-DD-HH-MM-SS”格式的字符串。我可以从 Boost 的“日期时间”库中获取 ISO 格式的当前时间,但它有其他对我不起作用的分隔字符串(我在文件名中使用它)。当然,我可以只替换分隔字符串,但感觉有一种更好的方法可以使用日期时间的格式化选项来做到这一点。有没有这样的方法,如果有,我该如何使用它?