栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

windows平台获取系统时间

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows平台获取系统时间

1.方法1 1.1 示例代码
#include 
#include 


int main()
{
	//获取系统时间,精确到秒
	struct tm sysTm;
	time_t tm = time(0);
	char showTm[100] = { 0 };
	localtime_s(&sysTm, &tm);

	//格式化当前时间点到字符数组中
	sprintf_s(showTm,99,"%04d-%02d-%02d %02d:%02d:%02d", sysTm.tm_year + 1900, sysTm.tm_mon + 1, sysTm.tm_mday
		, sysTm.tm_hour, sysTm.tm_min, sysTm.tm_sec);
	
	//打印当前时间点,,精确到秒
	printf("%sn",showTm);

	//打印当前时间点的详细说明
	printf("年:%dn", sysTm.tm_year + 1900);
	printf("月:%dn", sysTm.tm_mon + 1);
	printf("日:%dn", sysTm.tm_mday);
	printf("一周中的第几天:%dn", sysTm.tm_wday);
	printf("一年中的第几天:%dn", sysTm.tm_yday);
	printf("时:%dn", sysTm.tm_hour);
	printf("分:%dn", sysTm.tm_min);
	printf("秒:%dn", sysTm.tm_sec);
	
	return 0;
}

1.2 struct tm结构体的成员说明和取值范围
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
};

1.3 优缺点

缺点

只能精确到秒,无法获取毫秒数

优点

可以直接获得当前日期是一年中的第几天,和是星期几

2.方法2 2.1 示例代码
#include 
#include 
#include //SYSTEMTIME头文件


int main()
{
	//获取系统时间,精确到毫秒
	SYSTEMTIME sysTm;
	GetLocalTime(&sysTm);
	char bufTime[100] = { 0 };
	sprintf_s(bufTime, 99, "%04d-%02d-%02d %02d:%02d:%02d.%03d", sysTm.wYear, sysTm.wMonth, sysTm.wDay
		, sysTm.wHour, sysTm.wMinute, sysTm.wSecond, sysTm.wMilliseconds);
	printf("%sn",bufTime);

	//打印当前时间点的详细说明
	printf("年:%dn", sysTm.wYear);
	printf("月:%dn", sysTm.wMonth);
	printf("日:%dn", sysTm.wDay);
	printf("一周中的第几天:%dn", sysTm.wDayOfWeek);
	printf("时:%dn", sysTm.wHour);
	printf("分:%dn", sysTm.wMinute);
	printf("秒:%dn", sysTm.wSecond);
	printf("毫秒:%dn", sysTm.wMilliseconds);
	
	return 0;
}

 

2.2 struct SYSTEMTIME结构体说明
typedef struct _SYSTEMTIME {
    WORD wYear;//年
    WORD wMonth;//月
    WORD wDayOfWeek;//星期几
    WORD wDay;//日
    WORD wHour;//小时
    WORD wMinute;//分
    WORD wSecond;//秒
    WORD wMilliseconds;//毫秒
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
2.3 优缺点

缺点

不能跨平台,需包含Windows头文件

优点

可以获取到毫秒,写法比较简单易理解

3.封装成函数进行调用
#include 
#include 
#include //SYSTEMTIME头文件

char* GetDate()
{
	//获取系统时间,精确到毫秒
	SYSTEMTIME sysTm;
	GetLocalTime(&sysTm);
	char bufTime[100] = { 0 };
	sprintf_s(bufTime, 99, "%04d-%02d-%02d", sysTm.wYear, sysTm.wMonth, sysTm.wDay);
	return bufTime;
}

char* GetDateTime()
{
	//获取系统时间,精确到毫秒
	SYSTEMTIME sysTm;
	GetLocalTime(&sysTm);
	char bufTime[100] = { 0 };
	sprintf_s(bufTime, 99, "%04d-%02d-%02d %02d:%02d:%02d.%03d", sysTm.wYear, sysTm.wMonth, sysTm.wDay
		, sysTm.wHour, sysTm.wMinute, sysTm.wSecond, sysTm.wMilliseconds);
	return bufTime;
}

int main()
{
	char buf1[100] = { 0 };
	strcpy_s(buf1, GetDate());
	printf("%sn", buf1);

	char buf2[100] = {0};
	strcpy_s(buf2,GetDateTime());
	printf("%sn",buf2);
	return 0;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664522.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号