linux 下的时间编程

1.date命令

日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类 UNIX 系
统中,日期被存储为一个整数,其大小为自世界标准时间( UTC) 1970 年 1 月 1 日 0 时 0 分 0 秒起流逝的秒数。使用 date 命令可以查看系统时间。

在这里插入图片描述

2.Linux 下的时间结构体

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 代表一月) :取值区间为[0,11] */
  int tm_year;	/*年份:其值等于实际年份减去 1900 */
  int tm_wday;	/*取值区间为[0,6],其中 0 代表星期天,1 代表星期一 */
  int tm_yday;	/*取值区间为[0,365],其中 0 代表 1 月 1 日*/
  int tm_isdst;	/*实行夏令时为正,不实行为0,不了解情况时,为负*/
 }

time 函数会返回从公元 1970 年 1 月 1 日的 UTC 时间从 0 时 0 分 0 秒算起到现在所经过的秒数。

ctime 函数将将日历时间转化为本地时间的字符串形式。
gmtime 函数将日历时间转换为格林威治时间即世界标准时间。
asctime 函数将格林威治时间转化为字符串。
localtime 函数将日历时间转换为本地时间。

3.代码


#include "My_time.h"

//测试本地时间函数
void Test_Localtime(void)
{
    struct tm * time_str = NULL;
    time_t tmp;
    tmp = time(&tmp);
    if(tmp < 0 )
    {
        perror("time");
        return ;
    }
    time_str = localtime(&tmp);
    printf("现在时间是 %d年-%d月-%d日-%d时-%d分-%d秒 星期%d\n",\
    time_str->tm_year+1900,time_str->tm_mon+1,\
    time_str->tm_mday,time_str->tm_hour,\
    time_str->tm_min,time_str->tm_sec,\
    time_str->tm_wday
    );
}

// 测试格林威治时间函数
void Test_Gmtime(void)
{
    struct tm * time_str = NULL;
    time_t tmp;
    tmp = time(&tmp);
    if(tmp < 0 )
    {
        perror("time");
        return ;
    }
    time_str = gmtime(&tmp);
    printf("现在时间是 %d年-%d月-%d日-%d时-%d分-%d秒 星期%d\n",\
    time_str->tm_year+1900,time_str->tm_mon+1,\
    time_str->tm_mday,time_str->tm_hour,\
    time_str->tm_min,time_str->tm_sec,\
    time_str->tm_wday
    );
}

//用时间结构体转字符串时间(英文)
void Test_Asctime(void)
{
    char * asc_time=NULL;
    struct tm * time_str = NULL;
    time_t tmp;
    tmp = time(&tmp);
    if(tmp < 0 )
    {
        perror("time");
        return ;
    }
    time_str = localtime(&tmp);
    asc_time = asctime(time_str);
    printf("%s",asc_time);
}

//测试日历时间转字符串时间
void test_Ctime(void)
{
    char * time_str=NULL;
    time_t tmp;
    tmp=time(&tmp);
    time_str = ctime(&tmp);
    printf("%s",time_str);

}
#include "main.h"
#include "My_time.h"

int main(int argc,char * argv[])
{
    Test_Localtime();//测试本地时间函数
    Test_Gmtime();   // 测试格林威治时间函数
    Test_Asctime();  //用时间结构体转字符串时间(英文)
    test_Ctime();    //测试日历时间转字符串时间
    return 0;
}

结果:
在这里插入图片描述

4.其他时间相关指令

在这里插入图片描述

总结

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值