gmtime和localtime的区别

gmtime和localtime的区别gmtime 与 localtime gmtime

大家好,欢迎来到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

(0)
上一篇 2025-10-13 22:15
下一篇 2025-10-13 22:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信