某些机构共享示例代码来使用cpp获取我的本地系统日期格式。例如,我需要获取系统日期格式是'dd-mm-yyyy'还是'mm-dd-yyyy'或'yyyy-mm-dd'
我只需要检查系统日期格式。不需要获取日期,月份和年份。请帮助我。
答案 0 :(得分:2)
假设语言环境设置正确,您可以使用:
https://en.cppreference.com/w/cpp/locale/time_get/date_order
返回类型为
std::time_base::dateorder
的值,该值描述此语言环境使用的默认日期格式(由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。
很遗憾,I can only get it to print no_order
。我不确定这是否与我在其上运行的编译器,语言环境或系统有关。 cppreference上的示例为我提供了no_order
的所有信息,因此我猜测是编译器(我尝试过gcc和clang)尚未实现它。
可能有特定于系统的呼叫会给您您想要的东西。