python模块之时间模块

time模块

表示时间的三种方式

1. 时间戳(timestamp)

时间戳表示的是从1970年1月1日0时0分到当前时间的时间差,以秒计(浮点数),获取时间戳的方式为time.time()

2. 格式化的时间字符串(format string)

带格式的时间,也就是我们平时用到的时间,如"2018-12-18"

python中时间日期格式化符号

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

3. 结构化时间(struc_time)

结构化时间是一个包含9个元素的元组,元素分别是年、月、日、时、分、秒、一年中第几周、一年中第几天、是否是夏令时

示例:

import time
print(time.time())   # 1547215687.22852
print(time.strftime("%Y-%m-%d %H:%M:%S"))   # 2019-01-11 22:08:59

# 时间元组:localtime将一个时间戳转化成当前时区的struct_time
print(time.localtime())   # time.struct_time(tm_year=2019, tm_mon=1, tm_mday=11, tm_hour=22, tm_min=11, tm_sec=29, tm_wday=4, tm_yday=11, tm_isdst=0)

三种时间格式之间的转化

# 格式化时间----> 结构化时间
ft = time.strftime("%Y-%m-%d %H:%M:%S")
print(ft)   # 2019-01-11 22:46:41
st = time.strptime(ft, "%Y-%m-%d %H:%M:%S")  # 第一个参数为格式化时间,第二个参数为具体格式
print(st)   # time.struct_time(tm_year=2019, tm_mon=1, tm_mday=11, tm_hour=22, tm_min=47, tm_sec=27, tm_wday=4, tm_yday=11, tm_isdst=-1)

# 结构化时间----> 时间戳
t = time.mktime(st)
print(t)   # 1547218165.0

# 时间戳----> 结构化时间
t = time.time()
st = time.localtime(t)
print(st)    # time.struct_time(tm_year=2019, tm_mon=1, tm_mday=11, tm_hour=22, tm_min=50, tm_sec=41, tm_wday=4, tm_yday=11, tm_isdst=0)

# 结构化时间----> 格式化时间
ft = time.strftime("%Y-%m-%d %H:%M:%S", st)  # 第一个参数为时间格式,第二个参数为结构化时间
print(ft)   # 2019-01-11 22:52:12

三种时间格式之间的转换

4. asctime

python提供了一种默认的格式化时间asctime,格式为%a %b %d %H:%M:%S %Y

# asctime

# 结构化时间----> %a %b %d %H:%M:%S %Y串
# time.asctime(结构化时间)如果不穿参数。直接返回当前时间的格式化串
# print(time.asctime())   # Sat Jan 12 09:52:38 2019
# st = time.localtime(1500000000)   # 时间戳转化成结构化时间
# print(st)   # time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
# at = time.asctime(st)
# print(at)   # Fri Jul 14 10:40:00 2017

# 时间戳----> %a %b %d %H:%M:%S %Y串
# time.ctime(时间戳)  如果不传参数,直接返回会当前时间的格式化串
# print(time.ctime())  # Sat Jan 12 10:04:36 2019
# print(time.ctime(2000000000))    # Wed May 18 11:33:20 2033

# t = time.time()
# ft = time.ctime(t)
# print(ft)   # Sat Jan 12 10:08:13 2019

asctime与结构化时间、时间戳之间的转换

5. 计算时间差

# 计算时间差
# 1. 给出两个格式化时间,计算时间差
ft1 = "2018-06-26 17:00:20"
ft2 = "2019-01-12 10:16:00"
# 思路:1. 把两个格式化时间转化成时间戳tt1和tt2
#      2. tt2-tt1得到tt3
#      3. 将tt3转化成结构化时间
#      4. 提取结构化时间里的年月日,处理后得到时间差

st1 = time.strptime(ft1, "%Y-%m-%d %H:%M:%S")  # 格式化时间--->结构化时间
st2 = time.strptime(ft2, "%Y-%m-%d %H:%M:%S")

tt1 = time.mktime(st1)    # 结构化时间--->时间戳
tt2 = time.mktime(st2)

tt3 = tt2 - tt1   # 时间戳相减
st3 = time.localtime(tt3)   # 时间戳--->结构化时间(命名元组)
print(st3)
# print(st3.tm_year)   # 提取结构化时间里的年份
print("过去了%s年%s个月%s天%s小时%s分%s秒" % (st3.tm_year-1970, st3.tm_mon-1, st3.tm_mday, st3.tm_hour, st3.tm_min, st3.tm_sec))

计算时间差

datetime模块

datetime主要用于调整时间

import datetime
# time1 = datetime.datetime(1998, 12, 18, 10, 8, 50)   # 调整到指定时间
# print(time1)   # 1998-12-18 10:08:50
#
# time2 = datetime.datetime(year=1993, month=7, day=7, hour=12)  # 年月日必须指定,时分秒可以部分指定或不指定,需按照年月日时分秒的顺序
# print(time2)   # 1993-07-07 12:00:00

# 2. 根据当前时间指定时间
current_time = datetime.datetime.now()  # 获取当前时间
print(current_time)  # 2019-01-12 11:00:57.630978
delta_time = datetime.timedelta(weeks=3)   # 3周后
print(current_time+delta_time)   # 2019-02-02 11:03:33.487401
print(current_time+datetime.timedelta(weeks=-3))  # 3周前
print(current_time+datetime.timedelta(days=-5))  # 5天前
print(current_time+datetime.timedelta(hours=6))   # 6天后

# 注意:只能调整的字段 weeks days hours minutes seconds

# 将时间戳转化成时间
print(datetime.date.fromtimestamp(2247274932))    # 2041-03-19

调整时间

原文地址:https://www.cnblogs.com/zzliu/p/10237833.html

时间: 01-11

python模块之时间模块的相关文章

Python中的时间模块和日期模块

Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示. Python 的 time 模块下有很多函数可以转换常见日期格式.如函数time.time()用于获取当前时间戳, 如下实例: #!/usr/bin/python # -*- coding: UTF-

Python学习总结14:时间模块datetime & time & calendar (一)

Python中的常用于处理时间主要有3个模块datetime模块.time模块和calendar模块. 一.time模块 1. 在Python中表示时间的方式 1)时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“type(time.time())”,返回的是float类型.返回时间戳方式的函数主要有time(),clock()等. 2)格式化的时间字符串 3)元组(struct_time):共有9个元素,返回struct_

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

python例子-关于时间time模块

2015年10月17日09:28:42 python-time 访问网站如果不想要缓存的就 在后面加 ?t=123 如果网站遭到攻击应该怎么办,做流量清洗,分析包,正确的就放过,否则就抛弃掉. 如果攻击的站站带宽满了,就看看是否让运营商帮忙做清洗. 一般网站都有所CDN,否则扛不住. CDN: http://baike.baidu.com/link?url=XB3KAt8HGcKeiwEKvq0ZN59YxXohdEM1a_B2AARlUDc4uFHkwfRTp3VgHhhQvJkLZDshvw

python第十七天---时间模块、random模块

作完一个作业,开始新的学习: 有由今天的时间有限所有学习了以下两个模块,明天继续! 时间模块.random模块 import time 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import time ,datetime 5 print(time.process_time())#测量处理器运算时间,不包括sleep时间 6 7 print(time.altzone)#返回与UTC时间的时间差 以秒计算 8

python 学习笔记 13 -- 常用的时间模块之time

Python 没有包含对应日期和时间的内置类型,不过提供了3个相应的模块,可以采用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口.datetime 中的类支持算术.比较和时区配置. *    calendar 模块可以创建周.月和年的格式化表示.它还可以用来计算重复事件.给定日期是星期几,以及其他基

python时间模块-time和datetime

时间模块 python 中时间表示方法有:时间戳,即从1975年1月1日00:00:00到现在的秒数:格式化后的时间字符串:时间struct_time 元组. struct_time元组中元素主要包括tm_year(年).tm_mon(月).tm_mday(日).tm_hour(时).tm_min(分).tm_sec(秒).tm_wday(weekday0 - 6(0表示周日)).tm_yday(一年中的第几天1 - 366).tm_isdst(是否是夏令时) 1. time 常用函数 time

python时间模块介绍

时间戳是以秒为单位的浮点小数,时间戳以自1970年1月1日午夜到现在经过了的时间来表示 时间模块使用方法:import time 常见函数如下: 1.time.time() 返回时间戳 2.time.localtime([secs]) 返回时间元组 3.time.mktime(tupletime) 返回时间戳 4.time.asctime([tupletime]) 返回形式为"Sat Jul 25 20:08:32 2015" 相当于ctime(time.mktime([tupleti

Python基础5-常用模块

本节大纲 模块介绍 time &datetime模块 random os sys shutil shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,就是实现某种或者某类功能代码的合集. 类似于函数式编程和面向过程编程,函数式编程完成一个功能,其他代码可以调用,提供了代码的重用性跟代码间的耦合.对于一个复杂的功能,可能需要多个函数才能完成,多个.py文件的代码集合就叫做模块. 如:os是系统相关的模块:f

Python高手之路【八】python基础之requests模块

1.Requests模块说明 Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. 在Python的世界里,事情不应该这么麻烦. Requests 使用的是 urllib3,因此继承了它的所有特性.Request