C 获得当前日期
C++ get current date
本文关键字:当前日期 更新时间:2023-10-16
我想获得当前时间/月/年小时:分钟:第二当涉及到一个简单的问题时,C 似乎很令人作呕(嗯,这本身就是)。
我已经搜索了整个Internet,而我所能获得的只是弃用的c函数或线程不安全的功能。我找到了这样的方式:
std::time_t const now_c = std::time(0);
auto strTime = std::put_time(std::localtime(&now_c), "%F %T");
但是,我需要使用
#pragma warning(disable : 4996)
能够甚至可以编译它(Visual Studio会说:错误C4996:'localtime':此函数或变量可能不安全。考虑使用localtime_s,而不是localtime_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。)
。) 。)如何以优雅,有效的,不弃用,高效,明智和C 方式获得当前日期?
std::localtime
未弃用,仅被Microsoft编译器称为"不安全",将其应用于避免
#define _CRT_SECURE_NO_WARNINGS
我如何以优雅,有效的,不弃用,高效,明智和C 方式获得当前日期?
这是您使用免费的,开源的C 11/14图书馆在评论中提到的:
#include "tz.h"
#include <string>
int
main()
{
auto const now = date::make_zoned(date::current_zone(),
std::chrono::system_clock::now());
auto strTime = date::format("%F %T", now);
}
这是线程安全的,并使用现代C 11/14 <chrono>
库作为其基础。这将输出时间到system_clock::time_point
(VS上100Ns)的准确性。如果您希望将其截断为几秒钟,那就像这样完成了:
using namespace std::chrono;
using namespace date;
auto const now = make_zoned(current_zone(), floor<seconds>(system_clock::now()));
auto strTime = format("%F %T", now);
如果您想在其他地方找到当地时间,只需输入该时区的IANA名称代替current_zone()
:
auto const now = make_zoned("Europe/London", floor<seconds>(system_clock::now()));
相关文章:
- 使程序检查当前日期是否=预期日期
- 日期和当前日期之间的差异
- 仅使用C++中的标准库获取以毫秒为单位的当前日期和时间
- 从当前日期C++中减去任意日期
- 计算当前日期和用户输入日期问题之间的天数
- 在 C++20 中获取当前日期/时间是否线程安全?
- 以C++/提升表示 ISO 8601 持续时间,具体取决于当前日期
- 标准::时间 将天数添加到当前日期
- 符合C++的实现如何指示它不知道当前日期和时间?
- C 获得当前日期
- 如何在当前日期/时间之后命名我创建的文本文件
- 将当前日期与 c++ 中的 sql 数据库条目匹配
- 如何在 c++ 中获取当前日期
- TDateTime变量中的当前日期/时间
- Qt - 以 mmmm YYYY 格式获取当前日期(作为字符串)
- 获取C++的当前日期和时间
- 可视化如何在C++程序中获取当前日期
- 从时钟获取当前日期
- C++11 获取当前日期和时间作为字符串
- 如何在ROS中查找计算机的当前日期