time & datetime模块

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

原文地址:https://www.cnblogs.com/mao3714/p/8065020.html