Python时间运算的详细机制初探讨
时间:2022-04-25
本文章向大家介绍Python时间运算的详细机制初探讨,主要内容包括Python时间运算的详细机制初探讨、一句话快速进行python时间运算的技巧、2 、python快速时间运算、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
專 欄
❈刘布丁,Python中文社区专栏作者,目前工作职位是Python后台工程师,擅长Python系统监控。codewars四级段位不断刷题中。
博客地址:http://coderselftrain.com/archives/❈——
本篇共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_yday=283,
- 通过
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_yday=283, tm
- 通过
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,参数值必须是这些(整数,浮点数,正数,负数)。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法