C库函数-localtime()

C 标准库 - <time.h> C 标准库 - <time.h>

描述

C 库函数 struct tm *localtime(const time_t *timer) 使用 timer 的值来填充 tm 结构。timer 的值被分解为 tm 结构,并用本地时区表示。

声明

下面是 localtime() 函数的声明。

struct tm *localtime(const time_t *timer)

参数

  • timer -- 这是指向表示日历时间的 time_t 值的指针。

返回值

该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息。下面是 tm 结构的细节:

struct tm {
   int tm_sec;         /* 秒,范围从 0 到 59                */
   int tm_min;         /* 分,范围从 0 到 59                */
   int tm_hour;        /* 小时,范围从 0 到 23                */
   int tm_mday;        /* 一月中的第几天,范围从 1 到 31                    */
   int tm_mon;         /* 月份,范围从 0 到 11                */
   int tm_year;        /* 自 1900 起的年数                */
   int tm_wday;        /* 一周中的第几天,范围从 0 到 6                */
   int tm_yday;        /* 一年中的第几天,范围从 0 到 365                    */
   int tm_isdst;       /* 夏令时                        */    
};

实例

下面的实例演示了 localtime() 函数的用法。

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

int main ()
{
   time_t rawtime;
   struct tm *info;
   char buffer[80];

   time( &rawtime );

   info = localtime( &rawtime );
   printf("当前的本地时间和日期:%s", asctime(info));

   return(0);
}

让我们编译并运行上面的程序,这将产生以下结果:

当前的本地时间和日期:Thu Aug 23 09:12:05 2012

C 标准库 - <time.h> C 标准库 - <time.h>

2 篇笔记
  1. #2

       蔣神

      egg***@163.com

      参考地址

    在Visual Studio 2015里使用localtime函数报错C4996提示localtime函数不安全,推荐使用localtime_s代替。

    Visual Studio 2010极其以后的版本,新增了安全函数,改成localtime_s(),语法格式也发生了变化:

    errno_t localtime_s(
       struct tm* _tm,
       const time_t *time 
    );

    其中:

    _tm
    指向要填充的时间结构的指针。
    time
    指针,指向存储的时间。
    如果成功,返回值则为零。 如果失败,返回值将是错误代码。 错误代码是在 Errno.h 中定义的。
    
    结构类型的字段 tm 存储下面的值,其中每个为 int
    
    tm_sec
    分钟后的几秒 (0-59)。
    tm_min
    小时后的分钟 (0-59)。
    tm_hour
    午夜后经过的小时 (0-23)。
    tm_mday
     (1-31) 天。
    tm_mon
     (0  11;年 1  = 0)。
    tm_year
    年份 (当前年份减去 1900年)。
    tm_wday
    星期几 (0  6;星期日 = 0)。
    tm_yday
    每年的一天 (0-365;1  1  = 0)。
    tm_isdst
    如果夏令时有效,则为,正值夏时制不起作用; 如果为 0如果夏时制的状态是未知的负值。 如果 TZ 设置环境变量,C 运行库会假定规则适用于美国境内用于实现夏令时 (DST) 计算。

    下面以一个Visual Studio 2015实例来输出当地日期与时间:

    #include <iostream>
    #include <ctime>
    
    using namespace std;
    
    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);
        system("pause");
        return 0;
    }
  2. #1

       Charlotte

      egg***@163.com

    在 Visual Studio 2015 里也可持续使用 localtime,但要在首行加上 #define _CRT_SECURE_NO_WARNINGS 取消安全检查

    #define _CRT_SECURE_NO_WARNINGS
    
    #include<iostream>
    #include<ctime>
    
    using namespace std;
    
    void main()
    {
        time_t t = time(0);
        tm tt = *localtime(&t);
        cout << tt.tm_hour << endl;
        system("pause");
        return;
    }


猜你喜欢

转载自blog.csdn.net/zz460833359/article/details/80581142