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