草庐IT

article_time

全部标签

c++ - 如何从格式化字符串中获取 boost::posix_time::ptime

我有一个像“2012-03-28T08:00:00”这样的格式化字符串。我想获取年、月(字符串格式)、日期、小时、分钟、秒和日(字符串格式)。谁能建议我在boost中使用最简单的方法。谢谢 最佳答案 如果现有的from_string()方法不能满足您的需求,那么您可以使用时间输入方面,它允许您自定义解析字符串的格式。在您的情况下,您可以使用ISO扩展格式字符串,这样您就可以使用以下代码来解析您的字符串:boost::posix_time::time_input_facet*tif=newboost::posix_time::time

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

我想将以年、月、日等数字形式给出的UTC日期和时间转换为time_t。某些系统为此目的提供了诸如mkgmtime或timegm之类的函数,但这不是标准的,并且在我的Solaris系统上不存在。到目前为止,我找到的唯一解决方案是使用setenv将本地时区设置为UTC,然后调用mktime。然而,这种方法不是线程安全的、速度慢、不可移植,甚至会在我的系统上产生内存泄漏。我还看到过尝试使用gmtime确定当前UTC偏移量,然后将其添加到mktime的结果中的方法。但据我所知,所有这些方法都存在差距。毕竟,从本地时间到UTC的转换不是唯一的。您认为最好的解决方案是什么?

c++ - boost 定时器 : how to get time when I need?

所以我读了这个boostdocs但我还是不知道如何做这么简单的事情intmain(){//stuffstartTimer();//dostuffinti=getTimerValue();//stuff}所以为了获得我已经完成的事情的执行时间。怎么办? 最佳答案 使用boost::timer#includeintmain(){boost::timert;//starttiming...doubleelapsed_time=t.elapsed();...}请注意,boost::progress_timer的析构函数将显示时间。因此,如果

c++ - 如果达到结束条件,是否可以在 C++ 中退出 for before time?

我想知道是否可以在验证结束条件(不同于达到正确的迭代次数)时结束C++中的for循环。例如:for(inti=0;i我知道这在Perl中可以通过下一个LABEL或最后一个LABEL调用和标记block实现,是否可以在C++中实现,或者我应该使用while循环?谢谢。 最佳答案 您可以使用return关键字:将嵌套循环移动到子例程中,调用子例程来运行嵌套循环,然后从子例程中“返回”以退出[所有]循环。 关于c++-如果达到结束条件,是否可以在C++中退出forbeforetime?,我们在

c++ - boost local_date_time 数学错了吗?

我正在使用Boost'sdatetimelibrary在我的项目中。当我发现它具有小时、天、月、年等持续时间类型时,我感到非常高兴,并且它们会根据您将它们添加到的内容更改它们的值(即添加1个月提前日期的月份部分,它不只是增加30天或类似的时间)。我认为此属性适用于天数类型,但我决定在将其投入生产之前对其进行测试...local_date_timet1(date(2010,3,14),hours(1),easternTime,false);//1amonDSTtransitiondate{CPPUNIT_ASSERT_EQUAL(greg_year(2010),t1.local_time

c++ - std::chrono:将自定义持续时间添加到 time_point

以下代码可以编译(g++4.7.2):#includetypedefstd::chrono::durationdouble_prec_seconds;typedefstd::chrono::time_pointtimepoint_t;voiddo_something(consttimepoint_t&tm){//...}intmain(intargc,char**argv){timepoint_tt0=std::chrono::system_clock::now();timepoint_tt1=t0+std::chrono::seconds(3);//timepoint_tt3=t0+

C++ time_t问题

我在使用C++(VS2008)进行日期管理时遇到了问题。根据MSDNspecifications,time_t代表:自1970年1月1日0:00UTC以来的秒数因此,我写了这段代码:#include#includetime_tGetDate(intyear,intmonth,intday,inthour,intmin,intsec){time_trawtime;structtm*timeinfo;time(&rawtime);timeinfo=gmtime(&rawtime);timeinfo->tm_year=year-1900;timeinfo->tm_mon=month-1;ti

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

我有以下整数:inty,mon,d,h,min,s;它们的值为:2012、06、27、12、47,53分别。如果我在我的应用程序中的其他地方选择了“UTC”,我想表示“2012/06/2712:47:53UTC”的日期时间,或者如果我选择了“2012/06/2712:47:53AEST”在我的应用程序的其他地方选择了“AEST”。我想将其转换为time_t,这是我目前使用的代码:structtmtimeinfo;timeinfo.tm_year=year-1900;timeinfo.tm_mon=mon-1;timeinfo.tm_mday=day;timeinfo.tm_hour=h

c++ - 如果在我执行 timed_wait 时系统时间发生变化怎么办?

当在具有持续时间的boost::condition_variable上使用timed_wait时,等待条件是否会在持续时间后超时,即使用户(或ntp)更改了系统时间?例如,boost::posix_time::time_durationwait_duration(0,0,1,0);//1sec//**Systemtimejumpsback15minuteshere.**if(!signal.timed_wait(lock,wait_duration)){//Doesthisconditionhappen1secondlater,orabout15minuteslater?}

c++ - 如何将分数纪元时间戳( double )转换为 std::chrono::time_point?

我有一个小数纪元时间戳,表示为double,我想将其转换为适当的std::chrono::time_point。纪元是自1/1/1970以来的常用UNIX纪元。我知道存在std::chrono::system_clock::from_time_t,但是time_t没有小数部分。使用C++11方法执行此操作的最佳方法是什么?这个问题与unixtimestamptoboost::posix_time::ptime有关,除了它要求的是C++11而不是它的Boost版本。 最佳答案 假设纪元与已知的时钟类型相同,您可以使用具有double表