IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言time()函数的用法 -> 正文阅读

[C++知识库]C语言time()函数的用法

time()函数

1. time()函数的用途

time_t time(time_t *t);

函数说明:此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数(即格林尼治时间1970年1月1日00:00:00到当前时刻的时长,时长单位是秒)。如果t并非空指针的话,此函数也会将返回值存在t指针所指的内存。
返回值:成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于error中。

从声明中可以看出,time()函数返回值的数据类型是time_t。传递给time()函数的参数是指向time_t数据类型的指针。

2. time()函数的头文件

要使用time(),必须在程序中包含 ##include <time.h> 头文件。

3. time()函数返回的数据类型

下面是从<time.h>文件中找到的函数声明:

time_t time(time_t *t)
time(time_t *t)

从声明中可以看出,time()函数返回值的数据类型是 time_t 。传递给time()函数的参数是指向time_t数据类型的指针。

4. time()函数使用示例

time()函数有两种使用方式:

(1) t1=time(NULL)或t1=time(0)

将空指针传递给time()函数,并将time()返回值赋给变量t1

(2) time(&t2);

将变量t2的地址作为实参传递给time()函数,函数自动把结果传递给t2,不需要额外的赋值语句。
示例代码:

    #include <stdio.h>
    #include <time.h>
     
    int main()
    {
        time_t t1,t2; //分别声明两种使用方式的赋值对象
    	
        t1=time(0);   //第一种使用方式
        time(&t2);    //第二种使用方式
    	
        printf("t1=%ld\n",t1);
        printf("t2=%ld",t2);
    	
        return 0;
    }

localtime函数

struct tm* localtime(const time_t *timep);

函数说明:localtime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。结构tm的定义可以参考gmtime()。此函数返回的时间日期已经转换成当地时区。
返回值:返回结构tm代表目前的当地时间。


例子1

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

#define BUF_SIZE 200

typedef struct {
    int year;
    int month;
    int day;
    int hour;
    int minute;
    int second;
}Time_YMD_HMS;

char* getNowTime()
{
    Time_YMD_HMS *curDate =(Time_YMD_HMS *)malloc(sizeof(Time_YMD_HMS));
    char *timeBuf =(char *)malloc(BUF_SIZE);
    //bzero(timeBuf,BUF_SIZE);
    //bzero(curDate,sizeof(Time_YMD_HMS));
    memset(timeBuf,0,BUF_SIZE);
    memset(curDate,0,sizeof(Time_YMD_HMS));
    time_t now;
    struct tm *timeNow;
    time(&now);
    timeNow = localtime(&now);
    curDate->year=timeNow->tm_year+1900;
    curDate->month=timeNow->tm_mon+1;
    curDate->day=timeNow->tm_mday;
    curDate->hour=timeNow->tm_hour;
    curDate->minute=timeNow->tm_min;
    curDate->second=timeNow->tm_sec;
    // yyyy-MM-dd HH:mm:ss
    if(curDate->second < 10)
        sprintf(timeBuf, "%d-%d-%d %d:%d:0%d",curDate->year,curDate->month,curDate->day,
            curDate->hour,curDate->minute,curDate->second);
    else
        sprintf(timeBuf, "%d-%d-%d %d:%d:%d",curDate->year,curDate->month,curDate->day,
            curDate->hour,curDate->minute,curDate->second);
    free(curDate);
    return timeBuf;
}

int main()
{
    while (1)
    {
        printf("%s \n",getNowTime());
    }
    return 0;
}

例子2

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

void gettime(char *cur_time) {
        char Year[6] = {0};
        char Month[4] = {0};
        char Day[4] = {0};
        char Hour[4] = {0};
        char Min[4] = {0};
        char Sec[4] = {0};

        time_t current_time;
        struct tm* now_time;
        time(&current_time);
        now_time = localtime(&current_time);

        strftime(Year, sizeof(Year), "%Y-", now_time);
        strftime(Month, sizeof(Month), "%m-", now_time);
        strftime(Day, sizeof(Day), "%d ", now_time);
        strftime(Hour, sizeof(Hour), "%H:", now_time);
        strftime(Min, sizeof(Min), "%M:", now_time);
        strftime(Sec, sizeof(Sec), "%S", now_time);

        strncat(cur_time, Year, 5);
        strncat(cur_time, Month, 3);
        strncat(cur_time, Day, 3);
        strncat(cur_time, Hour, 3);
        strncat(cur_time, Min, 3);
        strncat(cur_time, Sec, 3);
}

int main() {
        char *cur_time = (char *)malloc(21*sizeof(char));
        gettime(cur_time);
        printf("Current time: %s\n", cur_time);
        free(cur_time);
        cur_time = NULL;
        return 0;
}

内核的时间打印

void sundp_get_time()
{
    struct tm tm1;

    time_t local_time1;
    local_time1 = ktime_get_real_seconds();
    time64_to_tm(local_time1, -sys_tz.tz_minuteswest * 60, &tm1);
    tm1.tm_year += 1900;
    tm1.tm_mon += 1;
    tm1.tm_mday += 2;

    uvc_printk(KERN_INFO, "sundp_ %d_%d_%d %d:%d.%d   ",tm1.tm_year,tm1.tm_mon,tm1.tm_mday,tm1.tm_hour,tm1.tm_min,tm1.tm_sec);
}

参考链接:

获取当前时间,要用到time.h中的time()和localtime()函数,二者具体介绍与使用,参见:
C中时间/环境/终端控制相关函数
c语言time()函数用法,参见:
C语言time()函数的用法
c++时间结构体(time_t和tm)

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:35:34  更:2022-10-31 11:40:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:39:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码