c++ - 将语言环境更改为瑞典语

标签 c++ locale

我在 C++ 程序中使用 setlocale 时遇到困难。我有一个 ftDateTime 类型的字段,我尝试输入的数据采用固定格式。

当我手动将 Windows 设置中的语言环境更改为适合数据的语言环境时,程序运行良好。当我尝试使用代码更改语言环境时,它会抛出日期和时间格式无效的异常。

void* ptr = setlocale(LC_ALL,"Swedish_Sweden");

数据是一些无关数据之前的日期和时间。瑞典语格式首先匹配传入数据。一个条目是:

2018-07-23 10:40:30

最佳答案

这段代码对我有用:

#include <cstdio>
#include <clocale>
#include <ctime>
#include <cwchar>

int main()
{
    std::setlocale(LC_ALL, "sv_SE.UTF-8");

    wchar_t str[100];
    std::time_t t = std::time(NULL);
    std::wcsftime(str, 100, L"%A %c", std::localtime(&t));
    std::wprintf(L"Number: %.2f\nDate: %Ls\n", 3.14, str);
}

输出:

Number: 3,14
Date: måndag mån 23 jul 2018 12:58:16

要了解您系统上的区域设置,请执行以下操作:

#include <iostream>
#include <clocale>

int main()
{
    std::setlocale(LC_ALL, "");
    std::cout << "LC_ALL: " << std::setlocale(LC_ALL, NULL) << std::endl;
    std::cout << "LC_CTYPE: " << std::setlocale(LC_CTYPE, NULL) << std::endl;
    return 0;
}

关于c++ - 将语言环境更改为瑞典语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51479116/

相关文章:

C++ boost解析动态生成的json字符串(不是文件)

c++ - 将执行错误重定向到文件 c++

r - 在R中获取英语的工作日

powershell - 英语非美国文化问题

android - 在 android 中更改语言环境后重新加载 View

C++:istream如何在条件表达式中转换为bool

c++ - 过程 C++ 程序的文件结构

python - 如何为 Python 创建 C++ 库

c++ - 如何从 systeminfo.exe 显示的区域设置字符串中检索 "Human Readable"字符串?

android - Android 上从右到左语言的状态如何?