用localtime-创新互联
在c++开发中,有时候会提示localtime() unsafe,这时候就可以使用localtime_s()来替换。
成都创新互联基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业服务器托管报价,主机托管价格性价比高,为金融证券行业绵阳服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。错误:C4996
'localtime': This function or variable may be unsafe.
Consider using localtime_s instead.
To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
See online help for details。
法一:在文件中针对随后内容关闭警告。(直接关闭警告不理会,但可能会出错!)
#pragma warning(disable : 4996)
法二:用localtime_s()替换
//先看源码
#if __STDC_WANT_SECURE_LIB__
_Check_return_wat_
static __inline errno_t __CRTDECL ctime_s(
_Out_writes_(_SizeInBytes) _Post_readable_size_(26) char* const _Buffer,
_In_range_(>=,26) size_t const _SizeInBytes,
_In_ time_t const* const _Time
)
{
return _ctime64_s(_Buffer, _SizeInBytes, _Time);
}
_Check_return_wat_
static __inline errno_t __CRTDECL gmtime_s(
_Out_ struct tm* const _Tm,
_In_ time_t const* const _Time
)
{
return _gmtime64_s(_Tm, _Time);
}
_Check_return_wat_
static __inline errno_t __CRTDECL localtime_s(
_Out_ struct tm* const _Tm,
_In_ time_t const* const _Time
)
{
return _localtime64_s(_Tm, _Time);
}
#endif
浅说一下上面三个函数:
1、ctime_s():将给定时间转换为当地日历,转换为文本表示。
2、gmtime_s():将历元以来的给定时间转换为日历时间。将结果存储在静态存储器中,返回指向该静态存储器的指针。
3、localtime_s():将历元以来的给定时间转换为以本地时间表示的日历时间。将结果存储在静态存储器中,返回指向该静态存储器的指针。
//下面是日期参数
struct tm
{
int tm_sec; // seconds after the minute - [0, 60] including leap second
int tm_min; // minutes after the hour - [0, 59]
int tm_hour; // hours since midnight - [0, 23]
int tm_mday; // day of the month - [1, 31]
int tm_mon; // months since January - [0, 11]
int tm_year; // years since 1900
int tm_wday; // days since Sunday - [0, 6]
int tm_yday; // days since January 1 - [0, 365]
int tm_isdst; // daylight savings time flag
};
示例:
//strftime(...)中第三个参数控制格式,可以根据具体需要调整。
//用localtime()获取当前时间
time_t ticks = time(NULL);
struct tm* p_Time = localtime(&ticks);
char c_TimeStamp[64];
memset(c_TimeStamp, 0 ,sizeof(c_TimeStamp));
strftime(c_TimeStamp, sizeof(c_TimeStamp), "%Y-%m-%d %H:%M:%S", p_Time);
cout<
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前题目:用localtime-创新互联
文章源于:http://ybzwz.com/article/gesoe.html