如何从 C++ 中的日期时间格式获取时间戳?

How to get timestamp from date time format in C++?

我想从 C++ 中的日期时间格式获取时间戳。我写了 C 风格的解决方案,但是 this->cache_time 最后没有承诺 [=12=] 因为它是 std::string_view.

std::time_t client::get_cache_time() {
            
    struct tm time;
    
    if(strptime(this->cache_time.data(), "%a, %d %b %Y %X %Z", &time) != NULL) {
        return timelocal(&time);
    }

    return 0;

}

C ++ 中是否有 strptime() 替代方案可以与 std::string_view 一起使用?

感谢您的帮助。

我不知道这个解决方案是否干净且内存效率高,但它确实有效。

std::time_t client::get_cache_time() {
            
    std::tm time;
    std::istringstream buffer(std::string(this->cache_time));

    buffer >> std::get_time(&time, "%a, %d %b %Y %X %Z");

    if(!buffer.fail()) {
        return timelocal(&time);
    }

    return 0;

}

std::string_view 很好,但并非所有地方都支持。