time & datetime模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | import time import datetime import os #获取当前时间戳 time.time() #将时间戳转换为struct_time 时间 print (time.localtime()) print (time.localtime( 1513651681 )) #将struct_time 时间转换成时间戳 print (time.mktime(time.localtime())) #将struct_time 时间转换成字符串 print (time.strftime( '%Y-%m-%d %H:%M:%S' ,time.localtime())) #将字符串转换成struct_time 时间 print (time.strptime( '2017-10-10 15:13:12' , '%Y-%m-%d %H:%M:%S' )) #获取文件创建时间 print (os.path.getctime( 'deg.py' )) #得到时间戳 print (time.localtime(os.path.getctime( 'deg.py' ))) #时间戳转成struct_time print (time.strftime( '%Y-%m-%d %H:%M:%S' ,time.localtime(os.path.getctime( 'deg.py' )))) #时间戳转成struct_time 在转成字符串 #获取文件访问时间 print (os.path.getatime( 'deg.py' )) #获取文件修改时间 print (os.path.getmtime( 'deg.py' )) #得到当前日期 print (datetime.date.today(), type (datetime.date.today())) # 日期格式datetime.date #得到当前时间 print (datetime.datetime.now(), type (datetime.datetime.now())) # 日期时间格式 #得到当前时间struct_time 格式 print (datetime.datetime.now().timetuple(), type (datetime.datetime.now().timetuple())) # struct_time 格式 #得到当前时间struct_time 格式转化成时间戳 print (time.mktime(datetime.datetime( 2017 , 12 , 12 , 11 , 26 , 26 ).timetuple())) #时间戳转换为日期 a = time.mktime(datetime.datetime( 2017 , 12 , 12 , 11 , 26 , 26 ).timetuple()) datetime.datetime.fromtimestamp(a) #datetime.datetime(2017, 12, 12, 11, 26, 26) #指定日期 datetime.date( 2017 , 10 , 10 ) #指定日期时间 datetime.datetime( 2017 , 10 , 10 , 12 , 13 , 16 ) #日期转换为字符串 datetime.datetime( 2017 , 10 , 10 , 12 , 13 , 16 ).strftime( '%Y-%m-%d %H:%M:%S' ) #'2017-10-10 12:13:16' #字符串转换为日期 datetime.datetime.strptime( '2017-10-10 12:13:16' , '%Y-%m-%d %H:%M:%S' ) #datetime.datetime(2017, 10, 10, 12, 13, 16) #datetime.timedelta #前一小时 #前一天 #后三天 datetime.datetime.now() - datetime.timedelta(hours = 1 ) #datetime.datetime(2017, 12, 19, 11, 55, 41, 284443) datetime.datetime.now() - datetime.timedelta(hours = - 1 ) #datetime.datetime(2017, 12, 19, 13, 56, 35, 542420) datetime.datetime.now() - datetime.timedelta(days = - 1 ) #datetime.datetime(2017, 12, 20, 12, 56, 44, 944484) datetime.datetime.now() - datetime.timedelta(days = 1 ) #datetime.datetime(2017, 12, 18, 12, 56, 49, 300419) datetime.datetime.now() - datetime.timedelta(minutes = 10 ) #datetime.datetime(2017, 12, 19, 12, 47, 5, 457422) |
结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | time.struct_time(tm_year = 2017 , tm_mon = 12 , tm_mday = 19 , tm_hour = 12 , tm_min = 58 , tm_sec = 32 , tm_wday = 1 , tm_yday = 353 , tm_isdst = 0 ) time.struct_time(tm_year = 2017 , tm_mon = 12 , tm_mday = 19 , tm_hour = 10 , tm_min = 48 , tm_sec = 1 , tm_wday = 1 , tm_yday = 353 , tm_isdst = 0 ) 1513659512.0 2017 - 12 - 19 12 : 58 : 32 time.struct_time(tm_year = 2017 , tm_mon = 10 , tm_mday = 10 , tm_hour = 15 , tm_min = 13 , tm_sec = 12 , tm_wday = 1 , tm_yday = 283 , tm_isdst = - 1 ) 1511856946.5942597 time.struct_time(tm_year = 2017 , tm_mon = 11 , tm_mday = 28 , tm_hour = 16 , tm_min = 15 , tm_sec = 46 , tm_wday = 1 , tm_yday = 332 , tm_isdst = 0 ) 2017 - 11 - 28 16 : 15 : 46 1511857233.4906693 1511857233.4906693 2017 - 12 - 19 < class 'datetime.date' > 2017 - 12 - 19 12 : 58 : 32.463455 < class 'datetime.datetime' > time.struct_time(tm_year = 2017 , tm_mon = 12 , tm_mday = 19 , tm_hour = 12 , tm_min = 58 , tm_sec = 32 , tm_wday = 1 , tm_yday = 353 , tm_isdst = - 1 ) < class 'time.struct_time' > 1513049186.0 |
###### python 得到前一个月的时间. 或得两个时间差的秒
dt = datetime.datetime.now()
date_n_days_ago = datetime.date(dt.year,dt.month - 1, dt.day) #一个月前的日期
dt1 = datetime.datetime(dt.year,dt.month - 1, dt.day) #一个月前的日期时间
(dt - dt1).seconds #两个datetime 类型相减得到类型 datetime.timedelta(31, 62855, 171354)
########## datetime.timedelta 类的使用方法
两个datetime.datetime类型相减 或两个 datetime.date类型相减 的结果就是datetime.timedelta类型
函数原型:
class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
从构造函数的定义中可以看出,所有参数都是可选的,并且默认都是0。参数的值可以是整数,浮点数,正数或负数。timedelta也有自己的一些属性和方法,可以通过dir(datetime.timedelta)查看。针对时间存储,timedelta内部只能存储days,seconds,microseconds,其他参数的值会自动按如下规则进行转换:
1 millisecond(毫秒)转换成 1000 microseconds(微秒)
1 minute 转换成 60 seconds
1 hour 转换成 3600 seconds
1 week转换成 7 days
>>> a = datetime.timedelta(days=1,microseconds=100,seconds=10)
>>> a
datetime.timedelta(1, 10, 100)
>>> a.days
1
>>> a.seconds
10
>>> a = datetime.timedelta(hours = 1)
>>> a
datetime.timedelta(0, 3600)
>>> a.days
0
>>> a.seconds
3600
>>> a.microseconds
0
####Linux date 命令
一天前的时间:
date -d '1 day ago' +"%Y-%m-%d %H:%M:%S"
date -d '-1 day'
一个月前时间:
date +%Y%m%d --date="+1 day" //显示后一天的日期
date +%Y%m%d --date="-1 day" //显示前一天的日期
date +%Y%m%d --date="-1 month" //显示上一月的日期
date +%Y%m%d --date="+1 month" //显示下一月的日期
date +%Y%m%d --date="-1 year" //显示前一年的日期
date +%Y%m%d --date="+1 year" //显示下一年的日期
得到当前日期时间戳:
date +"%s"
得到指定日期时间戳:
date -d '2018-03-03 11:12:13' +"%s"
时间戳转日期
date -d @12328989
设置时间的命令
date -s "2018-05-05 12:13:15"
https://www.cnblogs.com/hunttown/p/5470527.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步