将日期时间转换为毫秒 - C++ - 跨平台

2024-02-06

我想将“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;
    }
}

Output (ideone https://ideone.com/bxVSyT): 201697-5:0:54.123。

但是,您应该确保输入有效(例如,日期可以在 [0,99] 范围内)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将日期时间转换为毫秒 - C++ - 跨平台 的相关文章

随机推荐