Python 常用内建模块(time ,datetime)

转载 2018年04月17日 08:42:29

from:https://www.cnblogs.com/sunshineyang/p/6818834.html

1,在Python中,与时间处理有关的模块就包括:time,datetime以及calendar。

2,在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素

a,想时间戳和格式化好的时间互相转换的话,都要先转成时间元组,然后才能转

b,UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时

c,时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。返回时间戳方式的函数主要有time(),clock()等

d,元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元组中的几个元素

索引(Index)属性(Attribute)值(Values)
0tm_year(年)比如2011
1tm_mon(月)1 - 12
2tm_mday(日)1 - 31
3tm_hour(时)0 - 23
4tm_min(分)0 - 59
5tm_sec(秒)0 - 61
6tm_wday(weekday)0 - 6(0表示周日)
7tm_yday(一年中的第几天)1 - 366
8tm_isdst(是否是夏令时)默认为-1

一、time 

import time
print(time.sleep(2))#线程推迟指定的时间运行,单位是s
print(time.localtime()) #默认取当前时区的时间元组,如果传入了一个时间戳,那么就把这个时间戳转换成时间元组。
print(time.gmtime())#默认取标准时区的时间元组,如果传入了一个时间戳,那么就把这个时间戳转换成时间元组。
print(time.timezone) #和标准时间相差的时间,单位是s
print(time.localtime(1516005840))
print(time.gmtime(1516005840)) #标准时区。
print(int(time.time())) #当前时间戳,取整
print(time.time()) #当前时间戳,浮点型
print(time.mktime(time.localtime())) #将一个时间元组(struct_time)转化为时间戳。
print(time.asctime()) #将时间元组转换成格式化时间:'Sun Jun 20 23:21:05 1993'。如果没有参数,将会将time.localtime()作为参数传入。不可以指定格式输出,strftime()可以
print(time.ctime()) #将时间戳转换成格式化时间:'Sun Jun 20 23:21:05 1993'。如果参数未给或者为None的时候,将会默认time.time()为参数
cur_time = time.strftime('%Y-%m-%d %H:%M:%S') #把一个代表时间的元组转化为格式化的时间字符串。如果t未指定,将传入time.localtime()
print(cur_time)
cur_time= time.localtime(1516005840) #默认取当前时区的时间元组,如果传入了一个时间戳,那么就把这个时间戳转换成时间元组。
res = time.strftime('%Y-%m-%d %H:%M:%S',cur_time)
print(res)
t=time.strptime('2017-11-14','%Y-%m-%d') #把一个格式化时间字符串转化为时间元组。实际上它和strftime()是逆操作。
#time.strptime(string, format) string 与 format 格式要对应
res = time.mktime(t) #将一个时间元组(struct_time)转化为时间戳。
print(t)

常用函数:
def timestampToStr(time_strmp,format='%Y%m%d%H%M%S'):#将时间戳转换为格式化好的时间
t_stamp = time.localtime(time_strmp) #将时间戳转换为时间元组
time_st = time.strftime(format,t_stamp) #将时间元组转换为格式化时间
return time_st
def strToTimestamp(time_st,format='%Y%m%d%H%M%S'):#将格式化好的时间转换为时间戳
t_stamp = time.strptime(time_st,format) #将格式化时间转化为时间元组
time_str = time.mktime(t_stamp) #将时间元组转换为时间戳
return time_str
在Python中共有三种表达方式:1)timestamp 2)tuple或者struct_time 3)格式化字符串。
它们之间的转化如图所示:

二、datetime 模块

datetime模块定义了5个类,分别是

1.datetime.date:表示日期的类   

2.datetime.datetime:表示日期时间的类  from datetime import datetime导入的才是datetime这个类,如果仅导入import datetime,则必须引用全名datetime.datetime

3.datetime.time:表示时间的类  

4.datetime.timedelta:表示时间间隔,即两个时间点的间隔

5.datetime.tzinfo:时区的相关信息

获取当前时期和时间

import datetime  #如果仅导入import datetime,则必须引用全名datetime.datetime
print(datetime.datetime.now())#当前时间格式化输出

from _datetime import datetime
print(datetime.now()) #获取当前时间格式化输出

获取指定日期和时间

dt = datetime(2018,1,19,15,13)  # 用指定日期时间创建datetime
print(dt)

datetime 转换为时间戳(timestamp)

from  datetime import datetime
dt = datetime(2018,1,19,15,13) # 用指定日期时间创建datetime
print(dt)
print(dt.timestamp()) #把datetime 转换为timestamp
输出结果:
2018-01-19 15:13:00

1516345980.0 注意Python的timestamp是一个浮点数。如果有小数位,小数位表示毫秒数
时间戳(timestamp)转换为datetime
from _datetime import datetime
dt = 1516345980.0
print(datetime.fromtimestamp(dt)) #将时间戳转换为datetime
输出结果:2018-01-19 15:13:00
格式化时间转换为datetime

cday= datetime.strptime('2018-1-19','%Y-%m-%d') #将格式话时间转换为datetime
print(cday)
输出结果:2018-01-19 00:00:00
datetime 转换为格式化时间
now = datetime.now()
print(now.strftime('%a,%b %d %H:%M '))
输出结果:Fri,Jan 19 15:27
datetime 加减
print(datetime.now())
print(datetime.now() + timedelta(3)) # 3天后的时间
print(datetime.now() + timedelta(-3)) # 3天前的时间
 


三、常用示例

1. 时间加减

例一:

import datetime
d1 = datetime.datetime(2005, 2, 16)
d2 = datetime.datetime(2004, 12, 31)
(d1 – d2).days

例二:

# timedelta对象还可以做乘除操作
timespan = timedelta(days=1)
timespan * 2 #还可以乘哦。代表二倍
timespan / 13

2. 时间格式化和字符串之间的转换

datetime.datetime.strftime  # strftime将一个datetime结构格式化为一个字符串
datetime.datetime.strptime  # strptime则是将一个字符串格式化为一个datetime结构。
例:
datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
datetime.datetime.strptime(strdatetime, "%Y-%m-%d %H:%M:%S")   # strdatetime为指定格式的时间字符串
3. 时间日期格式化中的符号

%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 当前时区的名称 
%% %号本身




Python第三章模块

-
  • 1970年01月01日 08:00

Python 时间库 之 标准模块time

Python中的时间库有很多,特别推荐的有:六款Python 时间&日期库推荐 在学习Python的时间库时,应最先学习Python标准库中的模块:Time、Calendar、datetime、py...
  • ZZh1301051836
  • ZZh1301051836
  • 2018-01-10 10:21:36
  • 896

Python 内置 time 模块 API 中文档案

fadfasfasfdasfas 15.3. time — Time access and conversions
  • End0o0
  • End0o0
  • 2014-09-02 11:36:45
  • 2226

python tuple和list

tuple 创建一个元组: temp=(1,) #创建的元组只有一个元素,一定要加,不然会被默认为temp是整形 更新一个元祖 #!/usr/bin/env python3 #...
  • simple1_6
  • simple1_6
  • 2018-04-09 12:03:24
  • 4

Python List+Tuple+Dict+Set小结

创建List:L = ['Adam', 'Lisa', 'Bart', 'Gechong', 'Kongming'] 显示List:L[0] 遍历List:print (L)和for循环 更新L...
  • qiuyu5999446
  • qiuyu5999446
  • 2015-11-18 23:37:11
  • 129

Python的tuple

1. 定义用括号>>> tuple = (1 ,2 ,3)>>> tuple(1, 2, 3)>>> 2. 引用用中括号>>> tuple(1, 2, 3)>>> tuple[2]3>>> tupl...
  • xxkkff
  • xxkkff
  • 2009-07-20 19:35:00
  • 2443

python31初级[list+tuple+set+dict+str+file的成员方法]

列出常见类型的方法:def ListFunctions(lists):  print ("------------------------------------------")  print (ty...
  • yatere
  • yatere
  • 2011-07-10 01:44:09
  • 599

Python中tuple格式化字符串

偶尔格式化字符串时会加入tuple,我一直弱弱地这么做:   1 tup = (1, 2) 2 'tup: (%d, %...
  • tycoon1988
  • tycoon1988
  • 2014-08-12 12:59:56
  • 2556

[Python]ctypes+struct实现类c的结构化数据串行处理

用C/C++实现的结构化数据处理在涉及到比较底层的通信协议开发过程中, 往往需要开发语言能够有效的表达和处理所定义的通信协议的数据结构. 在这方面是C/C++语言是具有天然优势的: 通过struct,...
  • machael_sonic
  • machael_sonic
  • 2015-12-11 17:21:05
  • 4737

python+selenium自动化软件测试(第4章):场景判断与封装

4.1 显示等待WebDriverWait 前言: 在脚本中加入太多的sleep后会影响脚本的执行速度,虽然implicitly_wait()这种隐式等待在一定程度上节省了很多时间。 但是一旦页...
  • caoliu1024cl
  • caoliu1024cl
  • 2017-08-27 19:45:27
  • 318
收藏助手
不良信息举报
您举报文章:Python 常用内建模块(time ,datetime)
举报原因:
原因补充:

(最多只允许输入30个字)