草庐IT

lap_time

全部标签

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表

c++ - 将 steady_clock::time_point 转换为 time_t

我正在使用steady_clock来保存一些消息的时间戳。出于调试目的,拥有日历(或类似的东西)很有用。对于其他时钟,有静态函数to_time_t,但在GCC(MinGW4.8.0)上,此函数不存在。现在我打印类似的东西:Timestamp:26735259098242对于时间戳,我需要一个steady_clock,所以我不能使用system_clock或其他。编辑之前的打印是从time_since_epoch().count()给出的 最佳答案 假设您需要内部计算的稳定行为,而不是显示,这里有一个函数可用于转换为time_t以供显

c++ - time() 返回的 time_t 是否特定于区域?

我刚接触并对time_t有疑问和time().我阅读了如下记录的函数time():time_ttime(time_t*timer);GetcurrenttimeGetthecurrentcalendartimeasatime_tobject.Thefunctionreturnsthisvalue,andiftheargumentisnotanullpointer,thevalueisalsosettotheobjectpointedbytimer.文档没有讨论时区。因此,对于以下C++代码:time_tt=time(NULL);如果两台机器,一台在美国,一台在英国,都执行函数调用tim

c++ - 将 struct tm 转换为 time_t

我有以下代码:structtmtime;strptime("27052010","%d%m%Y",&time);cout输出是:sec:1474116832min:32767hour:4238231day:27month:5year:110sec:52min:0hour:6day:2month:9year:640time:18008625652(Fri,02Sep254004:00:52GMT)我的问题是为什么mktime()改变了time的值,为什么转换后的time_t不等于我输入的日期。我希望输出是自1970年以来以秒数表示的日期(27.05.2010=1330905600)。提前

c++ - 获取 POSIX 纪元作为 system_clock::time_point

我知道std::chrono::system_clock::time_point的默认值是时钟的纪元,但我在C++11标准中找不到任何规定system_clock的纪元与POSIX纪元(1970-01-01T00:00:00Z)相同。在Linux和Windows上假设是这种情况是否安全?或者使用std::chrono::system_clock::from_time_t(0)会更聪明吗? 最佳答案 标准离开std::chrono::system_clock::time_point的纪元未指定。std::chrono::system_

c++ - 以秒为单位获取 boost::posix_time::time_duration

我正在使用boost::posix_time::ptime来测量我的模拟运行时间和其他东西。假设boost::posix_time::ptimestart,stop;boost::posix_time::time_durationdiff;start=boost::posix_time::microsec_clock::local_time();sleep(5);stop=boost::posix_time::microsec_clock::local_time();diff=stop-stop;现在std::cout以hh:mm:ss.ssssss格式返回时间,我也希望以ss.sss

c++ - Clang 问题 : implicit type conversion at construction time

概要我正在努力使C++11代码与Clang兼容,并遇到了GCC>=4.6接受代码而Clang>=3.1不接受的情况。Clang认为候选构造函数不可行。详情这里是一个精简的例子来说明这个问题:#includetemplatestructT;templatestructT{typedefTsuper;constexprT(){}templateT(Args&&...){}};templatestructT:T{typedefTsuper;Headhead;T(Headarg):super(),head(std::move(arg)){}};structvoid_type{constexpr

c++ - boost:从机器获取带有当前时区的当前 local_date_time

问题是:我知道如何在boost中获取本地时间代码:boost::local_time::local_date_timecurrentTime(boost::posix_time::second_clock::local_time(),boost::local_time::time_zone_ptr());std::cout我知道如何从机器获取当前时区数据(我希望这是正确的方法)代码:tzset();//thevartznamewillhavetimezonenames//thevartimezonewillhavethecurrentoffset//thevardaylightshou

报错:The server time zone value ‘�й���׼ʱ��‘ is unrecognied

报错:Theservertimezonevalue‘�й���׼ʱ��’isunrecognied当我们通过JDBC连接数据库的时候有时候会报出以下的错误:Theservertimezonevalue‘�й���׼ʱ��’isunrecognizedorrepresentsmorethanonetimezone.YoumustconfigureeithertheserverorJDBCdriver(viathe‘serverTimezone’configurationproperty)touseamorespecifictimezonevalueifyouwanttoutilizetimezo

c++ - 为 std::put_time 调试断言 "Invalid format directive"

我正在学习使用C++11chrono,并尝试输出时间。OtherSOquestions显示一些代码示例,例如std::chrono::time_pointnow=std::chrono::system_clock::now();std::time_tnow_c=std::chrono::system_clock::to_time_t(now-std::chrono::hours(24));std::cout当我在VS2012上调试运行它时,我得到一个调试断言,声称我使用了“无效的格式指令”。如果我使用std::strftime,也会发生同样的情况。我假设Microsoft不支持%F和%