博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模块time, datetime的用法
阅读量:5053 次
发布时间:2019-06-12

本文共 3571 字,大约阅读时间需要 11 分钟。

一. time

 time库提供了各种操作时间的方法
 
1. time.asctime([tuple]):将一个时间元组转换成一个可读的24个时间字符串. >>> time.asctime(time.localtime()) 'Mon Jun 11 11:19:10 2018' 2. time.ctime():字符串类型返回当前时间'Mon Jun 11 11:20:12 2018' 3. time.localtime():默认将当前时间转为struct_time格式类型>>>time.localtime()time.struct_time(tm_year=2018, tm_mon=6, tm_mday=11, tm_hour=11, tm_min=21, tm_sec=59, tm_wday=0, tm_yday=162, tm_isdst=0)可以用time.localtime()[x]来取元组里面的值,[0]就是2017年份,tm_wday是周几,ubuntu好像周一是用0表示的。 4. time.sleep(seconds):延迟执行给定的秒数time.sleep(3) 5. time.strftime(format[,tuple]): 将元组时间转换为指定时间格式,当tuple不指定时间时,默认为当前时间。>>> time.strftime('%Y-%m-%d %H:%M:%S')'2018-06-11 11:29:12'6. time.mktime():将一个struct_time转为时间戳>>> time.mktime(time.localtime())1528687466.0 例子1,把指定的一个日期转换成时间戳>>> a="2014-10-10 23:40:30">>> timearray=time.strptime(a,'%Y-%m-%d %H:%M:%S')  # 将其转换为时间数组,使用strptime()可以转换成struct_time>>> timearraytime.struct_time(tm_year=2014, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=30, tm_wday=4, tm_yday=283, tm_isdst=-1)>>> timestap=int(time.mktime(timearray)) #转换成时间戳>>> print timestap1412955630

  

 
时间戳的作用是给时间加密,那么怎么把时间戳还原呢?
 
>>> timestamp=1505874314.0>>> timearray=time.localtime(timestamp)>>> styletime=time.strftime("%Y-%m-%d %H:%M:%S",timearray)>>> print styletime2017-09-20 10:25:14

  

可参考 
 ,里面有2个错误
1) 时间戳转换为指定格式日期的方法2,比实际时间差8个小时,utc国际时间的原因吧
2)获取当前时间并转换为指定日期格式,方法1的代码第5行参数,应该是now
 
 
 
 
 
 

二. datetime模块

 
常用的几个类如下
 
1. datetime.date()类
from datetime import datefrom datetime import datetime 1)对象能表示的最大时间>>> date.maxdatetime.date(9999, 12, 31)2)对象能表示的最小时间>>> date.mindatetime.date(1, 1, 1)   3)根据datetime自定义时间格式,这里用到了datetime类,需要导入from datetime import datetime>>> date.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S')'2018-06-11 14:00:05'    4)返回当前系统时间>>> date.today()datetime.date(2018, 6, 11) 5)返回iso格式日期>>> date.isoformat(date.today())'2018-06-11'6)返回时间戳日期>>> date.fromtimestamp(time.time())datetime.date(2018, 6, 11)7)根据日期返回是周几,里面的参数需要是datetime.date()对象类型,星期一是用0表示。>>> date.weekday(date.today())08)根据日期返回星期几,星期一用1表示>>> date.isoweekday(date.today())19)根据日期返回日历(年,第几周,星期几)>>> date.isocalendar(date.today())(2018, 24, 1)

  

 
2. datetime.datetime()
 
from datetime import datetime 1)获取当前系统时间>>> datetime.now()datetime.datetime(2018, 6, 11, 14, 22, 51, 442684)>>> datetime.today()datetime.datetime(2018, 6, 11, 14, 23, 21, 721145) >>>print(datetime.now()) 2018-06-11 14:22:51.442684
2) 返回ISO 8601格式时间>>> datetime.isoformat(datetime.now())'2018-06-11T14:27:17.590074'3)返回有年月日的对象>>> datetime.date(datetime.now())datetime.date(2018, 6, 11)4)返回有时分秒的对象>>> datetime.time(datetime.now())datetime.time(14, 30, 7, 982648)5)返回UTC时间,比中国时间早8个小时>>> datetime.utcnow()datetime.datetime(2018, 6, 11, 6, 31, 34, 506562)

  

 

 
3. datetime.timedelta():用于时间间隔
from datetime import timedeltafrom datetime import date1)获取昨天的日期>>> date.today() - timedelta(days=1)datetime.date(2018, 6, 10)>>> date.isoformat(date.today()-timedelta(days=1))'2018-06-10'2)获取明天的日期>>> date.today()+timedelta(days=1)datetime.date(2018, 6, 12)>>> date.isoformat(date.today()+timedelta(days=1))'2018-06-12'

  

 
                                                                       
 
几个练习题
 
1. 用datetime获取当前的日期,例如:2013-03-29from datetime import date>>> date.today()datetime.date(2018, 6, 11)>>> print (date.today())  #使用print()函数可以只打印出具体日期2018-06-11 2. 用datetime返回一个月前的日期:比如今天是2013-3-29 一个月前的话:2013-02-27解答:>>> now=date.today()>>> print now2017-09-18>>> onemonthago=now-datetime.timedelta(days=30)>>> print onemonthago2017-08-19 3. >>> date=datetime.datetime(2013,03,29) - datetime.timedelta(days=30)>>> print date2013-02-27 00:00:00>>> time_format=date.strftime('%Y%m%d')>>> print time_format20130227

  

 
 

转载于:https://www.cnblogs.com/regit/p/8515299.html

你可能感兴趣的文章
EntityFramework 性能优化
查看>>
【ASP.NET开发】菜鸟时期的ADO.NET使用笔记
查看>>
android圆角View实现及不同版本号这间的兼容
查看>>
OA项目设计的能力③
查看>>
Cocos2d-x3.0 文件处理
查看>>
全面整理的C++面试题
查看>>
Activity和Fragment生命周期对比
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>
日常报错
查看>>
list-style-type -- 定义列表样式
查看>>
Ubuntu 编译出现 ISO C++ 2011 不支持的解决办法
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
iOS设计模式 - 中介者
查看>>
centos jdk 下载
查看>>
HDU 1028 Ignatius and the Princess III(母函数)
查看>>
(转)面向对象最核心的机制——动态绑定(多态)
查看>>
token简单的使用流程。
查看>>
django创建项目流程
查看>>