c++ - 如何使用 cpp 查找我的本地系统日期格式?
问题描述
一些正文共享示例代码以使用 cpp 获取我的本地系统日期格式。例如,我需要获取系统日期格式是 'dd-mm-yyyy' 还是 'mm-dd-yyyy' 还是 'yyyy-mm-dd'
我只需要检查系统日期格式。无需获取日期、月份和年份。请帮助我。
解决方案
假设语言环境设置正确,您可以使用:
https://en.cppreference.com/w/cpp/locale/time_get/date_order
返回 type 的值
std::time_base::dateorder
,它描述了此语言环境使用的默认日期格式(由with format specifier预期get_date()
和产生)。std::strftime()
'%x'
std::time_base::dateorder d = std::use_facet<std::time_get<char>>(
std::locale()
).date_order();
switch (d)
{
case std::time_base::no_order: std::cout << "no_order\n"; break;
case std::time_base::dmy: std::cout << "day, month, year\n"; break;
case std::time_base::mdy: std::cout << "month, day, year\n"; break;
case std::time_base::ymd: std::cout << "year, month, day\n"; break;
case std::time_base::ydm: std::cout << "year, day, month\n"; break;
}
注意:此函数是可选的,它可能在每种情况下都返回 no_order。
不幸的是,我只能让它打印no_order
。我不确定这是否是我运行它的编译器、语言环境或系统的问题。cppreference 上的示例为我no_order
提供了所有内容,所以我的猜测是编译器(我尝试过 gcc 和 clang)还没有实现它。
可能有特定于系统的调用会给你你想要的。
推荐阅读
- c# - MethodInfo.Invoke 返回的对象与目标类型不匹配
- python - 如何在表示航班的字典中列出重复值?
- python - python numpy exponentially spaced samples between a start and end value
- c++ - 我应该如何运行游戏循环并更改其对象?
- javascript - 带有 javascript 的交互式日历
- javascript - 如何在另一个文件中获取组件的状态反应本机
- python - Groupby 前两个最早日期,然后是前两个日期之间的平均时间 - 熊猫
- php - 图像生成
- android - 使用 Kotlin 检索 Firebase 数据并为列表视图填充模型
- android - Room 的 DAO 方法返回 Flowable 的订阅者不会收到有关插入实体的通知