读书笔记:计算机日期

根据《UNIX环境高级编程(第2版)》中文版P142摘要:

UNIX在这方面与其他操作系统的区别是:

    (a) 以国际标准时间而非本地时间计时;

    (b) 可自动进行转换,例如变换到夏时制;

    (c) 将时间和日期作为一个量值保存。

看了《C专家编程》作者所述,有点迷糊了,只怪当年地理没学好……但还是敲个代码实践下吧,保存的文件名 04.c:

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

int main(int argc, char *argv[])
{
    time_t currentTime;

    // 获取当前时间和日期,UTC时间(日历时间)
    currentTime = time(NULL);

    // ctime()函数把参数转换为当地时间,受时区影响
    printf("本地时间:%s", ctime(&currentTime));

    // localtime() 本地时间,受时区影响;用actime()将结果转换成字符串
    printf("本地时间:%s", asctime(localtime(&currentTime)));

    // gmtime()获取UTC时间,用actime()将结果转换成字符串,不受时区影响
    printf("UTC时间 :%s", asctime(gmtime(&currentTime)));

    return 0;
}

弄完代码,发现,原来《UNIX环境高级编程(第2版)》中文版中的写的日历时间是标准时间,百度百科定义如下:

日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。

这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。在C语言中通过time函数获得日历时间。

然后,编译并运行:

$ gcc 04.c -Wall
$ ./a.out
本地时间:Fri Apr 18 20:45:55 2014
本地时间:Fri Apr 18 20:45:55 2014
UTC时间 :Fri Apr 18 12:45:55 2014

至于新西兰时间,真迷糊了。这么奇怪的地理位置……继续迷糊吧

转载于:https://my.oschina.net/lowkey2046/blog/224017

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值