C++中UNIX时间戳与日期互转
C++中UNIX时间戳与日期互转
- 使用
time.h
头文件 localtime
可以把时间戳转为tm
结构体, tm结构体中可以格式化输出时间mktime
可以把tm结构体转为时间戳tm
结构体中:year
需要+1900,tm_mon
的范围是0-11,tm_mday
的范围是1-31
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 };
- 示例代码
12345678910111213141516171819202122232425262728293031323334#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
using
namespace
std;
void
int_to_time(
long
long
int
u)
{
tm
* lt =
localtime
(&u);
printf
(
"%d-%02d-%02d %02d:%02d:%02d\n"
, lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);
}
tm
* build_string_line(string s)
{
int
year, month, day, hh, mm, ss;
int
_e =
sscanf
(s.c_str(),
"%d-%d-%d %d:%d:%d"
, &year, &month, &day, &hh, &mm, &ss);
tm
* lt =
new
tm
();
lt->tm_year = year - 1900;
lt->tm_mon = month - 1;
lt->tm_mday = day;
lt->tm_hour = hh;
lt->tm_min = mm;
lt->tm_sec = ss;
return
lt;
}
void
time_to_int(
tm
* lt)
{
//printf("%d-%02d-%02d %02d:%02d:%02d\n", lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);
long
long
int
u2 =
mktime
(lt);
printf
(
"%lld\n"
, u2);
}
人工智障与神经病网络
https://www.cnblogs.com/JiangOil/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)