我想将格式为"20160907-05:00:54.123"的字符串转换为毫秒.我知道strptime在Windows中不可用,我想在Windows和Linux中运行我的程序.我也不能使用第三方库.我可以将字符串标记化并转换它.但是有更优雅的方式就像使用strptime这样做吗?
怎么样std::sscanf?
#include <iostream>
#include <cstring>
int main() {
const char *str_time = "20160907-05:00:54.123";
unsigned int year, month, day, hour, minute, second, miliseconds;
if (std::sscanf(str_time, "%4u%2u%2u-%2u:%2u:%2u.%3u", &year, &month,
&day, &hour, &minute, &second,&miliseconds) != 7)
{
std::cout << "Parse failed" << std::endl;
}
else
{
std::cout << year << month << day << "-" << hour << ":"
<< minute << ":" << second << "." << miliseconds
<< std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
输出(ideone):201697-5:0:54.123.
但是,您应确保输入有效(例如,日期可以在[0,99]范围内).
| 归档时间: |
|
| 查看次数: |
2534 次 |
| 最近记录: |