c语言获取当前日期和时间

  • `time_t`类型:日历时间
  • `time`函数:获取当前日历时间
  • tm 结构体:分解时间
  • `localtime`函数:从日历时间转换为分解时间
  • 代码

time_t类型:日历时间

typedef long time_t;time_t实际上是long型,从一个时间点(一般是1970年1月1日0时0分0秒)到当前的秒数。

time函数:获取当前日历时间

time函数可以获取当前日历时间。该函数不仅会将所求得的日历时间作为返回值返回,还会将其保存在参数所指向的变量中。

有以下三种调用方式

  1. time(&current)
  2. current = time(NULL)
  3. current = time(&current)

tm 结构体:分解时间

表示日历时间的time _t型,是算术类型的数值,对计算机来说计算起来比较容易,但是对我们来说却不是那么直观。为此,C语言中还提供了另外一种表示时间的方法,即称为分解时间(broken-down time)的结构体数据类型tm.

struct tm{
	int tm_sec; //秒(0~61)
	int tm_min; //分(0~59)
	int tm_hour; //小时(0~23)
	int tm_mday;//日(1~31)
	int tm_mon;//月份(0~11)
	int tm_year;//年,从1970年至今经过的年数
	int tm_wday;// 星期:(0~6)
	int tm_yday; // 天数(0~365)
	int tm_isdst;//夏令时 daylight-saving time
	}
  • 成员tm_sec 取值范围是0~61,而非0~59。这是因为考虑了闰秒。
    闰秒简介

localtime函数:从日历时间转换为分解时间

代码

#include <stdio.h>
#include <string.h>
#include <time.h>

int main(void)
{
	struct tm t;   //tm结构指针
	time_t now;  //声明time_t类型变量
	time(&now);      //获取系统日期和时间
	localtime_s(&t, &now);   //获取当地日期和时间

	   //格式化输出本地时间
	printf("年:%d\n", t.tm_year + 1900);
	printf("月:%d\n", t.tm_mon + 1);
	printf("日:%d\n", t.tm_mday);
	printf("周:%d\n", t.tm_wday);
	printf("一年中:%d\n", t.tm_yday);
	printf("时:%d\n", t.tm_hour);
	printf("分:%d\n", t.tm_min);
	printf("秒:%d\n", t.tm_sec);
	printf("夏令时:%d\n", t.tm_isdst);
	//getchar();
	return 0;

}

更多推荐

c语言获取当前日期和时间