`

c++11获取当前linux系统时间并格式化毫秒级

 
阅读更多
std::time_t getTimeStamp()
{
    std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds> tp = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());
    auto tmp=std::chrono::duration_cast<std::chrono::milliseconds>(tp.time_since_epoch());
    std::time_t timestamp = tmp.count();
    return timestamp;
}
std::tm* gettm(uint64_t timestamp)
{
    uint64_t milli = timestamp;
    milli += (uint64_t)8*60*60*1000;//转换时区,北京时间+8小时
    auto mTime = std::chrono::milliseconds(milli);
    auto tp=std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds>(mTime);
    auto tt = std::chrono::system_clock::to_time_t(tp);
    std::tm* now = std::gmtime(&tt);
    return now;
}

string getTimeStr()
{
    time_t timep;
    timep = getTimeStamp(); 
    struct tm *info;
    info = gettm(timep); 

    char tmp[27] = {0};
    sprintf(tmp, "[%04d-%02d-%02d %02d:%02d:%02d.%06ld]", info->tm_year+1900, info->tm_mon+1, info->tm_mday, info->tm_hour, info->tm_min, info->tm_sec, timep%1000000);
    return tmp;
}

 

分享到:
评论

相关推荐

    C++ 取间隔时间类(高精度)

    在C++编程中,有时我们需要处理精确到微秒或纳秒的时间间隔,这在系统级编程、性能测试或计时器应用中尤为重要。本压缩包提供的"高精度取间隔时间类"是为了满足这类需求而设计的。这个类库可以在Visual Studio环境中...

    半毫秒精度的相对时间转成绝对时间的程序

    2. **获取当前时间**:利用操作系统提供的API(如Windows API的GetSystemTimeAsFileTime或Linux的gettimeofday)获取当前的绝对时间,这通常会返回包含微妙精度的时间戳。 3. **计算绝对时间**:将相对时间加上当前...

    ms:将各种时间格式转换为以毫秒为单位的毫秒

    3. **字符串解析与格式化**:在将时间字符串转换为毫秒之前,`ms`可能提供函数来解析这些字符串,同时也支持将毫秒值格式化回人类可读的字符串。 4. **时间区间处理**:如果你需要计算两个时间点之间的差值,`ms`库...

    如何获取系统日期时间

    在编程领域,获取系统日期和时间是一项基本操作,无论是在Windows、Linux还是Mac OS等操作系统中,都有多种方法可以实现这一功能。系统日期和时间的获取对于开发各种应用程序,如日志记录、计时器、任务调度等都至关...

    C++控制台时钟小程序(无闪烁完美版)

    `std::chrono::system_clock`可以获取当前系统时间,`std::chrono::duration_cast`用于将时间间隔转换为所需的精度,如秒、毫秒或微秒。 2. **循环结构**:为了持续显示时间,程序会使用无限循环,如`while(true)`...

    可以显示时间的程序

    7. **API接口**:如果程序需要集成到其他系统中,可能需要提供API接口供其他应用调用获取当前时间。 8. **电源管理**:在移动设备上,程序可能需要考虑节能策略,避免频繁的系统时间查询消耗电池。 通过以上分析,...

    opencv基于c++个人笔记总结

    ### OpenCV 基于 C++ 的个人笔记总结 #### 环境配置与注意事项 在使用 OpenCV 进行 C++ 编程时,首先需要确保开发环境正确配置。这里提到的一些细节对于初学者来说非常重要: - **路径中斜杠的使用**:在不同的...

    计时程序(倒计时和顺计时)

    2. 循环更新:使用定时器(如JavaScript的setInterval或C++的timer类)每隔一定时间间隔(如1秒)获取并更新当前时间,然后计算已过去的时间。 3. 时间格式化:将计算出的已过去的时间转换为HH:MM:SS格式。 4. 显示...

    symbian os/c++移动应用开发讲义

    Symbian OS 采用了微内核架构,并支持系统调用的可重入性,这使得它在与其他操作系统如 Windows Mobile、Palm OS 和 Linux 等的竞争中具有一定的优势。 ##### 关键特性 - **基于 ROM 的设计**:允许系统直接运行于...

    时钟程序,数字型时钟

    4. **时间格式化**:获取到的时间通常是以秒或者毫秒为单位的,需要将其转换成易读的小时、分钟和秒格式。这涉及到时间戳的处理和格式化函数的使用,如C++的strftime,Python的strftime,或者Java的SimpleDateFormat...

    noi测评系统使用说明

    Arbiter系统具有广泛的系统兼容性,支持当前主流的Linux发行版,如RedHat、FedoraCore、Ubuntu等,尤其推荐使用专为NOI设计的NOI Linux。此外,Arbiter支持C、C++和Pascal等多种编程语言,且试题配置灵活,功能丰富...

    时间戳转换程序源码(QT)

    5. **时间日期处理**:在C++中,可以使用`chrono`库(C++11及更高版本)或者QT自身的`QDateTime`类来处理时间日期。`QDateTime`类提供了解析、格式化、加减操作以及与时间戳相互转换的功能。 6. **程序打包**:为了...

    无穷位PI的计算 5000位计算59毫秒 大数 保存

    标题中的“无穷位PI的计算 5000位计算59毫秒 大数 保存”揭示了这个程序的核心功能,它是一款基于C#编程语言开发的应用,能够高效地计算圆周率(PI)的无穷多位数字,并在短时间内完成。其中,“5000位计算59毫秒”...

    QT数字时钟,简单程序,适合练习

    - 重载定时器的timeout()信号,当触发时,获取系统当前时间(QTime::currentTime()),并更新显示时间的控件内容。 - 在主窗口的构造函数中连接定时器的timeout()信号到更新时间的槽函数。 3. 编程过程: - 首先...

    树莓派 opencv c++ 实时读取图像和处理

    树莓派是一种小型、低成本的单板计算机,常用于教育和DIY项目,它提供了运行完整操作系统的能力,如Raspbian(基于Debian的Linux发行版)。在树莓派上进行图像处理可以应用于各种场景,如监控、机器视觉或智能设备等...

    石大赛普 surpass实时数据库系统性能指标.pdf

    - 支持的操作系统:Windows 2000 Server版及以上、Linux。 - 集群支持:支持服务器集群,以优化大数据点情况下的性能。 - 数据源冗余切换:支持,提高系统的可用性和稳定性。 - 点数限制:没有具体点数限制,但...

    动态显示的时尚数字钟

    - 在编程中,通常使用系统API或内置函数来获取当前时间。例如,在C++中,可以使用`time()`函数获取Unix时间戳,然后通过`localtime()`或`gmtime()`转换成可读格式。在.NET框架中,`DateTime.Now`属性可以获取本地...

    QT4模拟时钟、代码为QT4

    QT4模拟时钟是一种使用Qt 4框架开发的桌面应用程序,它通过图形用户界面呈现一个模拟的钟表,显示当前时间。Qt是一个跨平台的应用程序开发框架,支持多种操作系统,如Windows、Linux和macOS。QT4是Qt的第四个主要...

    QNX_Eval_RT6.4.1.7z

    标题中的"QNX_Eval_RT6.4.1.7z"指的是QNX 6.4.1版本的实时操作系统评估版,其文件格式为7z压缩包,通常包含用于试用和评估的完整系统镜像。 描述中提到的"QNX 6.4.1虚拟机VMWare镜像"表明,这个压缩包内含的是在...

Global site tag (gtag.js) - Google Analytics