Python时间运算的详细机制初探讨

简介:

本篇共2部分,上篇我们初步探讨Python时间运算的机制,下篇为一句话快速运用Python的datetime进行时间运算的技巧。

Python时间运算的详细机制初探讨

我们先来看一张图:


import time

导入时间模块;

In [5]: time.strptime('20161009','%Y%m%d')

Out[5]: time.struct_time(tm_year=2016, tm_mon=10, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_

通过time.strptime()将普通字符时间转换为时间元祖,注意这两者在转换时需要指定字符时间的格式(%Y%m%d这里只用到了年月日);

In [6]: time.mktime(time.strptime('20161009','%Y%m%d'))

Out[6]: 1475942400.0

通过time.mktime将上一步的时间元祖转换为时间戳,也就是1970年0时0分0秒到20161009的0时0分0秒为止,过了多少秒;

In [7]: time.localtime(1475942400.0)

Out[7]: time.struct_time(tm_year=2016, tm_mon=10, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yd

通过 time.localtime将时间戳转换为时间元祖;

In [13]: time.strftime('%Y%m%d',time.localtime(1475942400.0))

Out[13]: '20161009'

通过 time.strftime 将时间元祖复原为普通字符时间,同样注意需要指定字符时间的格式。

附:字符时间常用格式

%Y  Year with century as a decimal number.

%m  Month as a decimal number [01,12].

%d  Day of the month as a decimal number [01,31].

%H  Hour (24-hour clock) as a decimal number [00,23].

%M  Minute as a decimal number [00,59].

%S  Second as a decimal number [00,61].

%z  Time zone offset from UTC.

%a  Locale's abbreviated weekday name.

%A  Locale's full weekday name.

%b  Locale's abbreviated month name.

%B  Locale's full month name.

%c  Locale's appropriate date and time representation.

%I  Hour (12-hour clock) as a decimal number [01,12].

%p  Locale's equivalent of either AM or PM.

一句话快速进行python时间运算的技巧

1、python快速求值当前时间

当前的天数、当前的时间

In [1]: from datetime import datetime, timedelta, date



In [2]: (datetime.now()).strftime('%Y%m%d')

Out[2]: '20161009'



In [3]: (datetime.now()).strftime('%Y/%m/%d %H:%M:%S')

Out[3]: '2016/10/09 16:57:12'

同上,当前的周数、月份、上下午等都可以通过后面的格式化字符求出。例如,

%a代表英文周几,%b代表月份,%p代表AM/PM等,更多的参考下图:

2 、python快速时间运算

python周数运算、天数运算、小时运算、秒数运算、毫秒运算、微秒运算

In [5]: (datetime.now()-timedelta(days=1)).strftime('%Y%m%d')  # 1天前,N天前

Out[5]: '20161008'



In [6]: (datetime.now()-timedelta(hours=1)).strftime('%Y/%m/%d %H:%M:%S')  # 1小时前,n小时前

Out[6]: '2016/10/09 16:00:02'

同上,weeks表示周为单位,second表示秒为单位,milliseconds表示毫秒为单位, microseconds微秒为单位。

其实就是给 timedelta() 这个类传入的参数变一下就可以了:

可传入的参数有 timedelta(weeks, days, hours, second, milliseconds, microseconds) 每个参数都是可选参数,默认值为0,参数值必须是这些(整数,浮点数,正数,负数)。


原文发布时间为:2017-02-28

本文作者:刘布丁

本文来自云栖社区合作伙伴“Python中文社区”,了解相关信息可以关注“Python中文社区”微信公众号

相关文章
|
3月前
|
测试技术 Python
Python测试报告生成:整合错误截图,重复用例执行策略,调整测试顺序及多断言机制。
如何组织这一切呢?你可以写一本名为“Python测试之道”的动作指南手册,或者创建一个包含测试策略、测试顺序、多断言机制的脚本库。只要你的测试剧本编写得足够独到,你的框架就会像一位执行任务的超级英雄,将任何潜伏于代码深处的错误无情地揪出来展现在光天化日之下。这些整理好的测试结果,不仅有利于团队协作,更像冒险故事中的精彩篇章,带给读者无尽的探索乐趣和深刻的思考。
106 10
|
8月前
|
并行计算 安全 Java
Python GIL(全局解释器锁)机制对多线程性能影响的深度分析
在Python开发中,GIL(全局解释器锁)一直备受关注。本文基于CPython解释器,探讨GIL的技术本质及其对程序性能的影响。GIL确保同一时刻只有一个线程执行代码,以保护内存管理的安全性,但也限制了多线程并行计算的效率。文章分析了GIL的必要性、局限性,并介绍了多进程、异步编程等替代方案。尽管Python 3.13计划移除GIL,但该特性至少要到2028年才会默认禁用,因此理解GIL仍至关重要。
561 16
Python GIL(全局解释器锁)机制对多线程性能影响的深度分析
|
8月前
|
缓存 JSON 数据处理
Python进阶:深入理解import机制与importlib的妙用
本文深入解析了Python的`import`机制及其背后的原理,涵盖基本用法、模块缓存、导入搜索路径和导入钩子等内容。通过理解这些机制,开发者可以优化模块加载速度并确保代码的一致性。文章还介绍了`importlib`的强大功能,如动态模块导入、实现插件系统及重新加载模块,展示了如何利用这些特性编写更加灵活和高效的代码。掌握这些知识有助于提升编程技能,充分利用Python的强大功能。
396 4
|
10月前
|
UED 开发者 Python
Python中的异常处理机制
Python中的异常处理机制
136 2
|
10月前
|
监控 Java 开发者
Python的垃圾收集机制有哪些?
Python的垃圾收集机制有哪些?
|
10月前
|
机器学习/深度学习 存储 数据挖掘
Python 编程入门:理解变量、数据类型和基本运算
【10月更文挑战第43天】在编程的海洋中,Python是一艘易于驾驭的小船。本文将带你启航,探索Python编程的基础:变量的声明与使用、丰富的数据类型以及如何通过基本运算符来操作它们。我们将从浅显易懂的例子出发,逐步深入到代码示例,确保即使是零基础的读者也能跟上步伐。准备好了吗?让我们开始吧!
139 0
|
11月前
|
人工智能 文字识别 API
Python反爬机制-验证码(二)
Python反爬机制-验证码(二)
133 1
|
测试技术 数据库 开发者
Python作为一种谦逊的编程语言:对象自省机制的探讨
Python的自省机制是该语言的一个强大特性,为开发者提供了深入了解和操作对象的能力。它增强了Python的灵活性,使得开发者可以更加精准地控制程序的行为。然而,合理利用自省能力,避免其成为代码复杂性的来源,是每个Python开发者需要考虑的问题。通过熟练运用Python提供的自省工具和技巧,可以更好地设计和实现高效、易维护的Python应用。
137 2
|
消息中间件 安全 Kafka
Python IPC机制全攻略:让进程间通信变得像呼吸一样自然
【9月更文挑战第12天】在编程领域,进程间通信(IPC)是连接独立执行单元的关键技术。Python凭借简洁的语法和丰富的库支持,提供了多种IPC方案。本文将对比探讨Python的IPC机制,包括管道与消息队列、套接字与共享内存。管道适用于简单场景,而消息队列更灵活,适合高并发环境。套接字广泛用于网络通信,共享内存则在本地高效传输数据。通过示例代码展示`multiprocessing.Queue`的使用,帮助读者理解IPC的实际应用。希望本文能让你更熟练地选择和运用IPC机制。
216 10
|
消息中间件 安全 数据库
动手实操!Python IPC机制,打造高效协同的进程军团
【9月更文挑战第10天】在软件开发领域,进程间的高效协作对应用性能与稳定性至关重要。Python提供了多种进程间通信(IPC)机制,如管道、消息队列、套接字、共享内存等,帮助开发者构建高效协同的系统。本文将通过动手实践,使用`multiprocessing`模块演示如何利用队列实现进程间通信。示例代码展示了如何创建一个工作进程从队列接收并处理数据,从而实现安全高效的进程交互。通过实际操作,读者可以深入了解Python IPC的强大功能,提升系统的并发处理能力。
141 1

推荐镜像

更多