大家好,欢迎来到IT知识分享网。
Linux中gmtime和localtime的区别
gmtime():将time函数得到的秒数转换成一个UTC时间的结构体struct tm,该结构体包含什么请自行man
通过此函数gmtime()是0时区,把UTC时间转换成北京时间的话,需要在年数上加1900,月份上加1,小时数加上8
当然同类型的函数还有localtime():得到本地时间,该函数同gmtime函数唯一区别是,在转换小时数不需要加上8了。
localtime是将时区考虑在内了,转出的当前时区的时间。但是注意,有些嵌入式设备上被裁减过的系统,时区没有被设置好,导致二者转出来的时间都是0时区的。
Linux中gmtime和localtime的区别
前段时间用到,写了段小测试代码,个人觉得足够清楚的表明了二者的区别了,还是不明白的话,就看看APUE里面的章节吧。
#include <time.h> #include <stdio.h> int main(int argc, char argv) { time_t tmpcal_ptr = {0}; struct tm *tmp_ptr = NULL; tmpcal_ptr = time(NULL); printf("tmpcal_ptr=%d\n", tmpcal_ptr); tmp_ptr = gmtime(&tmpcal_ptr); printf("after gmtime, the time is:\n%d:%d:%d", tmp_ptr->tm_hour, tmp_ptr->tm_min, tmp_ptr->tm_sec); tmp_ptr = localtime(&tmpcal_ptr); printf("after localtime, the time is:\n%d:%d:%d", tmp_ptr->tm_hour, tmp_ptr->tm_min, tmp_ptr->tm_sec); return 0; }
运行结果如下:
基本的意思是,gmtime转出来的是0时区的标准时间
Python:python time模块之time.gmtime([secs])函数和time.localtime([secs])函数
time.gmtime([secs])
将以自 epoch 开始的秒数表示的时间转换为 UTC 的 struct_time ,其中 dst 标志始终为零。 如果未提供 secs 或为 None ,则使用 time() 所返回的当前时间。 一秒以内的小数将被忽略。
应用例子
# 导入time模块 import time # 未传入sec参数 print(time.gmtime())
输出:
time.struct_time(tm_year=2022, tm_mon=6, tm_mday=7, tm_hour=1, tm_min=33, tm_sec=0, tm_wday=1, tm_yday=158, tm_isdst=0)
# 导入time模块 import time # 传入secs参数 print(time.gmtime(1))
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
time.localtime([secs])
与 gmtime() 相似但转换为当地时间。如果未提供 secs 或为 None ,则使用由 time() 返回的当前时间。当 DST 适用于给定时间时,dst标志设置为 1 。
应用例子
# 导入time模块 import time # 未传入sec参数 print(time.localtime())
time.struct_time(tm_year=2022, tm_mon=6, tm_mday=7, tm_hour=9, tm_min=33, tm_sec=0, tm_wday=1, tm_yday=158, tm_isdst=0)
# 导入time模块 import time # 传入secs参数 print(time.localtime(1))
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
class time.struct_time
在调用 mktime() 时, tm_isdst 可以在夏令时生效时设置为1,而在夏令时不生效时设置为0。 值-1表示这是未知的,并且通常会导致填写正确的状态。
gmtime和localtime的区别gmtime和localtime的区别
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122804.html