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)
结果:
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