python的时间模块似乎有点杂乱无章。 例如,以下是docstring中的方法列表:

1

2

3

4

5

6

7

8

9

10

11time() -- return current time in seconds since the Epoch as a float

clock() -- return CPU time since process start as a float

sleep() -- delay for a number of seconds given as a float

gmtime() -- convert seconds since Epoch to UTC tuple

localtime() -- convert seconds since Epoch to local time tuple

asctime() -- convert time tuple to string

ctime() -- convert time in seconds to string

mktime() -- convert local time tuple to seconds since Epoch

strftime() -- convert time tuple to string according to format specification

strptime() -- parse string to time tuple according to format specification

tzset() -- change the local timezone

查看localtime()及其逆mktime(),为什么gmtime()没有反转?

奖金问题:你怎么称呼这个方法? 你会如何实现它?

实际上有一个反函数,但由于一些奇怪的原因,它在日历模块中:calendar.timegm()。我列出了这个答案中的功能。

calendar.timegm(datetime.datetime.utcnow()。utctimetuple())是获取UTC时间戳的一个班轮。

Python:包括电池,但有时电池本身没有组装。

@erikcw:或者只是time.time()在使用Unix纪元的系统上(在我知道的每个系统上)。 +/- float / int转换。

我一直认为时间和日期时间模块有点不连贯。无论如何,这是mktime的反转

1

2

3

4import time

def mkgmtime(t):

"""Convert UTC tuple to seconds since Epoch"""

return time.mktime(t)-time.timezone

弄清楚是否使用time.timezone或time.altzone是困难的部分。 :-)

对于非Python用户:time.timezone是非DST时间增量。 time.altzone是DST时间增量。据我所知,没有真正的方法来判断时间戳是否落在DST上,而不是调用localtime()。

我是第二个Jester,我一般你不能用时区减去因为DST不在时区,这只会让你当地时间(不考虑DST)

1. time.mktime()期望本地时间与calendar.timegm()不同,期望UTC时间元组。这可能会导致范围错误。 2.某些本地时间不明确或不存在,即,有两个相应的时间戳或没有 - mktime()可能会在DST转换周围返回错误的结果。 3.由于DST(altzone)或由于t时间的UTC偏移与当前UTC偏移不同,-time.timezone可能与相应的utc偏移不同。

mktime文档在这里有点误导,没有任何意义说它计算为本地时间,而是根据提供的元组计算Epoch的秒数 - 无论您的计算机位置如何。

如果您确实想要从utc_tuple转换为本地时间,您可以执行以下操作:

1

2

3

4

5

6

7

8

9>>> time.ctime(time.time())

'Fri Sep 13 12:40:08 2013'

>>> utc_tuple = time.gmtime()

>>> time.ctime(time.mktime(utc_tuple))

'Fri Sep 13 10:40:11 2013'

>>> time.ctime(time.mktime(utc_tuple) - time.timezone)

'Fri Sep 13 12:40:11 2013'

也许更准确的问题是如何将utc_tuple转换为local_tuple。

我会称之为gm_tuple_to_local_tuple(我更喜欢长而具有描述性的名字):

1

2>>> time.localtime(time.mktime(utc_tuple) - time.timezone)

time.struct_time(tm_year=2013, tm_mon=9, tm_mday=13, tm_hour=12, tm_min=40, tm_sec=11, tm_wday=4, tm_yday=256, tm_isdst=1)

Validatation:

1

2>>> time.ctime(time.mktime(time.localtime(time.mktime(utc_tuple) - time.timezone)))

'Fri Sep 13 12:40:11 2013'

希望这可以帮助,

髂骨。

这个答案是对的。示范:assert time.gmtime(10**9) == (2001,9,9, 1,46,40, 6,252,0); assert time.mktime((2001,9,9, 1,46,40, 6,252,0)) == 10**9 - 4*3600(最后只在某些系统上才有效,当然,具体取决于当地时区)。原因:mktime确实考虑了当地时区。

我只是Python的新手,但这是我的方法。

1

2

3

4

5

6def mkgmtime(fields):

now = int(time.time())

gmt = list(time.gmtime(now))

gmt[8] = time.localtime(now).tm_isdst

disp = now - time.mktime(tuple(gmt))

return disp + time.mktime(fields)

在那里,我提出了这个功能的名称。 :-)每次重新计算disp非常重要,以防日光节省值发生变化等。 (Jython需要转换回元组.CPython似乎不需要它。)

这是超级ick,因为time.gmtime总是将DST标志设置为false。不过,我讨厌这些代码。必须有一个更好的方法来做到这一点。而且可能还有一些我尚未得到的角落案例。

python的gmtime函数_关于python:是否有time.gmtime()的反函数将UTC元组解析为自纪元以来的秒数?...相关推荐

  1. python一些常用函数_【python】常用的一些内置函数

    1.cmp cmp(A,B)函数,比较A,B的大小,如果A大于B,返回1,A小于B返回-1,A等于B返回0 print cmp(12,33) >>>-1 print cmp(&quo ...

  2. python调用matlab函数_从python调用MATLAB函数

    我知道这是一个老问题,已经得到答复. 但是我一直在寻找相同的东西(对于Mac),发现有很多选择与matlab交互的方法和成熟度不同. 这是我发现的: pymat 使用matlab引擎(libeng)进 ...

  3. python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法

    0. 实验环境Ubuntu 16.04 Matlab R2015b 1. 借助于 mlab 库 安装方法非常简单,只需一行命令 sudo pip install mlab 即可. import num ...

  4. python指数运算函数_分享Python中用于计算指数的exp()方法实例教程

    exp()方法返回指数x: ex. 语法 以下是exp()方法的语法:import math math.exp( x ) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math ...

  5. python中累加函数_对Python实现累加函数的方法详解

    对Python实现累加函数的方法详解 发布时间:2020-10-26 00:02:44 来源:脚本之家 阅读:120 作者:岚漾忆雨 这个需求比较奇怪,要求实现Sum和MagaSum函数,实现以下功能 ...

  6. python中延时函数_推迟python中的函数

    要在延迟后执行函数或使用事件循环(无线程)在给定的秒数内重复函数,您可以: Tkinter的 #!/usr/bin/env python from Tkinter import Tk def foo( ...

  7. python mount回调函数_让Python脚本暂停执行的几种方法(小结)

    1.time.sleep(secs) 参考文档原文: Suspend execution for the given number of seconds. The argument may be a ...

  8. python帮助系统函数_【Python】【基础知识】【内置函数】【help的使用方法】

    原英文帮助文档: help([object]) Invoke the built-in help system. (This function is intended for interactive ...

  9. python中loads函数_了解python的json.dumps()和json.loads()

    Python视频教程专栏介绍了两个概念:转储()和加载() 相关免费学习推荐:python视频教程 第一,概念理解 1.json.dumps()和json.loads()是json格式处理函数(jso ...

最新文章

  1. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!
  2. 用NVIDIA Tensor Cores和TensorFlow 2加速医学图像分割
  3. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(添加均值点)实战
  4. Gartner 发布《2017 年新兴技术成熟度曲线图》
  5. Ubuntu 16.04设置IP、网关、DNS
  6. ListFragment的使用
  7. ML算法岗从业几年还不具备提出新模型的技术能力?看这个就够了!
  8. gitolite 踩坑记
  9. 如何基于大数据及AI平台实现业务系统实时化?
  10. spring5.x cxf3.4.x 服务端和客户端 非maven版本
  11. Java 将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML
  12. PointConv论文阅读笔记
  13. backup ram不稳定 stm32_具备无线能力的STM32,如何让智能手表更加炙手可热?
  14. asp. net sqlsever旅游管理系统动态网站设计制作作业成品
  15. vue实现侧边栏手风琴效果
  16. JSP 页面实现一个计算器功能
  17. 【Rustdesk】最友好的开源远程桌面软件——Rustdesk 实现 Windows、Linux、MacOS 之间远程连接桌面
  18. 万象优鲜生鲜配送系统源码
  19. 用python求解一元二次方程组
  20. Maya如何渲染序列帧

热门文章

  1. 【模拟】--新飞行棋
  2. JavaScript: 原型链继承(原理解析 + 代码实现 + 结构图解)
  3. Android 用代码实现防打扰【能够屏蔽电话和短信】
  4. 从2.0到3.0,安全可信正在成为云原生的下一核心
  5. 电子音乐小知识——教你听懂电音
  6. DRF基本使用及执行流程分析 | APIView源码分析
  7. Word - 页眉奇偶页显示不同内容
  8. ue4 输出360全景图片及视频的几个方式对比及注意点
  9. 戴尔G3笔记本磁盘被BitLocker加密后解锁方法
  10. 佛系计算机二级 第四弹