gpt4 book ai didi

c++ - 用日期创建 std::wstring

转载 作者:行者123 更新时间:2023-11-28 01:47:04 26 4
gpt4 key购买 nike

我正在寻找从 std::time_t 创建格式化(兼容 MySQL DATETIME)std::wstring 的首选方法。我现在所做的是从 std::stringstream 创建一个带有 std::put_timestd::string,然后转换它到 std::wstring 这样的构造:

std::wstring foo(myStdString.begin(), myStdString.end())

但是我觉得这样不是很优雅。有这样做的既定方法吗?也许一直使用宽字符以某种形式检索?

回答(见下文)

我忘记以正确的格式为 std::put_time 指定格式字符串,然后它的工作方式类似于 std::string

这是我的结果代码:

auto time_last_write = boost::filesystem::last_write_time(path);
std::wostringstream wstream;
wstream << std::put_time(std::gmtime(&time_last_write), L"%Y-%M-%d %H:%M:%S");

最佳答案

您可以使用 std::put_time()。请记住,字符类型是从“格式”参数推导出来的:

#include <iostream>
#include <iomanip>
#include <ctime>

int main()
{
std::time_t t = std::time(nullptr);
std::tm timestamp = *std::localtime(&t);
static const wchar_t *format = L"It is %T.";
std::wcout << std::put_time(&timestamp, format);
}

您可能希望写入 std::wostringstream 而不是 std::wcout,但原则没有改变。

关于c++ - 用日期创建 std::wstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44634483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com