c语言毫秒整数转换成字符串,使用boost data_time模块来获取毫秒级时间并转换为string字符串...

using boost.date_time to get time in millisecond microsecond level

Guide

format flags

second millisecond microsecond nanosecond

Format Flags

%f

Fractional seconds are always used, even when their value is zero

"13:15:16.000000"

%F *

Fractional seconds are used only when their value is not zero.

"13:15:16"

"05:04:03.001234"

to string

The Boost.Date_Time library provides the following ptime to std::string conversions within the boost::posix_time namespace:

std::string to_simple_string(ptime) returns a string in the form of YYYY-mmm-DD HH:MM:SS.fffffffff format where mmm is the three character month name.

std::string to_iso_string(ptime) returns a string in the form of YYYYMMDDTHHMMSS,fffffffff where T is the date-time separator.

std::string to_iso_extended_string(ptime) returns a string in the form of YYYY-MM-DDTHH:MM:SS,fffffffff where T is the date-time separator.

date_time.cpp

#include

#include

#include

#include

using namespace std;

using namespace boost::posix_time;

using namespace boost::gregorian;

/*

second millisecond microsecond nanosecond

Format Flags

%f

Fractional seconds are always used, even when their value is zero

"13:15:16.000000"

%F *

Fractional seconds are used only when their value is not zero.

"13:15:16"

"05:04:03.001234"

*/

std::string ptime_2_str_name(boost::posix_time::ptime now)

{

// https://stackoverflow.com/questions/5018188/how-to-format-a-datetime-to-string-using-boost

// for multiple use

std::stringstream ss;

//static std::locale loc(std::cout.getloc(), new time_facet("%Y%m%d_%H%M%S_%f"));

static std::locale loc(ss.getloc(), new time_facet("%Y%m%d_%H%M%S_%f"));

ss.imbue(loc);

ss << now;

return ss.str(); // 20180118_111501_208797

}

std::string str_name_2_iso_format(std::string str_name)

{

/*

20180118_111501_208797 ===> 20180118T111501.208797===>from_iso_string===>ptime

*/

//std::cout << "time length: " << str_ptime.length() << endl; //22

size_t first_pos = str_name.find_first_of('_');

size_t second_pos = str_name.find_last_of('_');

str_name[first_pos] = 'T';

str_name[second_pos] = '.';

return str_name;

}

ptime from_name_string(std::string str_ptime)

{

std::string str_iso_ptime = str_name_2_iso_format(str_ptime);

return from_iso_string(str_iso_ptime);

}

int main()

{

ptime p1(date(2001, 1, 1), hours(1));

ptime p2 = time_from_string("2002-2-2 02:00:00.999888"); // fraction part: 6 bits

ptime p3 = from_iso_string("20030303T031233.777666"); // fraction part: 6 bits

ptime p4 = second_clock::local_time(); // in second

ptime p5 = microsec_clock::universal_time(); // UTC World time in millisecond,microsecond

ptime p6 = microsec_clock::local_time(); // UTC local time in millisecond,microsecond

cout << p1 << endl

<< p2 << endl

<< p3 << endl

<< p4 << endl

<< p5 << endl

<< p6 << endl << endl;

/*

* date()

* time_of_day()

*/

date d = p1.date();

time_duration td = p1.time_of_day();

cout << d << ", " << td << endl << endl;

cout << to_simple_string(p2) << endl //YYYY-mmm-DD HH:MM:SS.ffffff

<< to_iso_string(p2) << endl //YYYYMMDDTHHMMSS,ffffff

<< to_iso_extended_string(p2) << endl; //YYYY-MM-DDTHH:MM:SS,ffffff

cout << "User defined format time:" << endl;

std::string str_name = ptime_2_str_name(p6);

ptime p7 = from_name_string(str_name);

cout <

cout <

return 0;

}

CMakeLists.txt

# Specify the minimum version for CMake

cmake_minimum_required(VERSION 2.8)

# Project's name

project(date_time)

# Set the output folder where your program will be created

set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)

set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})

set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})

#find_package(Boost 1.5.8 REQUIRED COMPONENTS date_time system filesystem iostreams)

find_package(Boost 1.5.8 REQUIRED COMPONENTS date_time)

include_directories(${Boost_INCLUDE_DIRS})

link_directories(${Boost_LIBRARY_DIRS})

# The following folder will be included

include_directories("${PROJECT_SOURCE_DIR}")

add_executable(date_time ${PROJECT_SOURCE_DIR}/date_time.cpp)

target_link_libraries(date_time ${Boost_LIBRARIES})

run and output

compile program and run

mkdir build

cd build

cmake ..

make

cd bin

./date_time

output

2001-Jan-01 01:00:00

2002-Feb-02 02:00:00.999888

2003-Mar-03 03:12:33.777666

2018-Jan-18 15:20:47

2018-Jan-18 07:20:47.815415

2018-Jan-18 15:20:47.815419

2001-Jan-01, 01:00:00

2002-Feb-02 02:00:00.999888

20020202T020000.999888

2002-02-02T02:00:00.999888

User defined format time:

p6: 20180118_152047_815419

p7 from String2Ptime(p6): 20180118_152047_815419

Reference

History

20180118: created.

Copyright

Post author: kezunlin

Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

在Windows及Linux下获取毫秒级运行时间的方法

在Windows下获取毫秒级运行时间的方法 头文件: 函数原型: /*获取时钟频率,保存在结构LARGE_INTEGER中***/ WINBASEAPI BOOL W ...

GetSystemTime API可以得到毫秒级时间

用Now返回的日期格式中年只有2位,即2000年显示为00, 这似乎不太令人满意. 此外Now和Time都只能获得精确到秒的时间,为了得到更精确的毫秒级时间,可以使用API函数GetSystemTim ...

Linux下得到毫秒级时间--C语言实现(转-度娘818)

Linux下得到毫秒级时间--C语言实现 原文链接: http://www.cnblogs.com/nwf5d/archive/2011/06/03/2071247.html #ifdef HAVE_ ...

C++获取毫秒级时间戳

#include   auto timeNow = chrono::duration_cast<:milliseconds>(chrono::sy ...

java/python中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数

java转换成秒数 Date类有一个getTime()可以换回秒数,例如: public class DateToSecond { public static void main(String[] a ...

c++ 中 毫秒级时间获取

#include clock_t start,ends; start=clock(); Sleep(); ends=clock(); cout<

Delphi获取毫秒级时间戳

function GetJavaTime( d: TDateTime ): Int64; var dJavaStart: TDateTime; begin //java里的时间是从1970年1月1日0 ...

QT 获取当前毫秒级时间缀

long long currentTime = QDateTime::currentDateTime().toMSecsSinceEpoch();

C++计时器:毫秒级和微秒级

1.毫秒级 使用GetTickCount()获取系统启动所经过的毫秒数 #include using namespace std; int main(){ DWORD ...

随机推荐

Hibernnate延迟加载策略(这么详细你还看不懂)

好久没有认真写过博客了,今天就好好的写一篇吧!!!!!!!!! 当Hibernate 从数据库中加载某个对象(例如:Dept对象)时,如果同时自动加载所有的关联的某个对象(例如:Emp对象),而程序实 ...

Visual Studio 2010(.NET 4.0)中使用SQLite.NET

Visual Studio 2010(.NET 4.0)中使用SQLite.NET   2011年4月1日 | 分类: DataBase, DOTNET | 标签: .net 4.0, SQLite. ...

BZOJ_1025_[SHOI2009]_游戏_(素数表+最小公倍数+DP)

描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1025 分析 对于\(n\),转一圈回来之后其实是好几个环各转了整数圈.这些环中的数为\(1,2 ...

关于GC进行垃圾回收的时机

前言 今天查看一个同事的代码,发现代码中多处地方使用了GC.Collect()方法,我问他为什么这么做,他说感觉程序中定义了好多变量,怕GC回收不及时,用GC.Collect()可以手动掌控GC进行垃 ...

jmeter之beanshell提取json数据

Jmeter BeanShell PostProcessor提取json数据 假设现有需求: 提取sample返回json数据中所有name字段对应的值,返回的json格式如下: {“body”:{“ ...

ubuntu垃圾清理命令

ubuntu的空间莫名不够用了 通过系统自带的工具磁盘使用分析器,发现var文件下面的log100多个g,这个日志文件是可以删除的,然后tmp文件也是可以删除的. 1.sudo rm -rf /tmp ...

类型转换异常处理java.lang.RuntimeException

前几天在做一个安卓项目的时候一直报java.lang.RuntimeException错,一直调试不出来,今天突然又灵感是不是文件配置出错了,果然在清单文件中少了一句 android:name=&qu ...

token.go

package sego // 字串类型,可以用来表达 //    1. 一个字元,比如"中"又如"国", 英文的一个字元是一个词 //    2. 一个分词, ...

使用Vue-cli搭建多页面应用时对项目结构和配置的调整

前提:在这里使用的是webpack模板进行搭建 第一步.安装Vue-cli并且进行初始化 首先打开git,在里面使用npm全局安装Vue-cli,并且进行初始化 npm i vue-cli -g 然后 ...

第四周助教工作总结——NWNU李泓毅

1.    助教博客链接: https://www.cnblogs.com/NWNU-LHY/ 2.    作业要求链接: www.cnblogs.com/nwnu-daizh/p/10487329. ...

你可能感兴趣的:(c语言毫秒整数转换成字符串)