python的datetime举例_python:datetime类常用内容

from datetime importdatetimefrom datetime importdateimporttime#datetime()和time()

"""datetime模块的常用类:

date:日期,常用属性:year、month、day

time:时间

datetime:日期时间,常用属性:hour、minute、second、microsecond

timedelta:时间间隔,两个时间点之间的长度

datetime模块中的常量:

MAXYEAR,datetime.MAXYEAR最大年份

MINYEAR,datetime.MINYEAR最小年份"""

#(一)date类

td =datetime.today()print ("Today is",td) #获取当前日期、时间:2019-11-24 20:17:28.933784#获取当前年月日的方法一

print ("Today's year is",td.year) #当前年:2019

print ("Today's month is",td.month) #当前月:11

print ("Today's day is",td.day) #当前日:24

#获取当前年月日的方法二:.__getattribute__()方法

print ("20191102's year is",td.__getattribute__("year")) #当前年:2019

print ("20191102's month is",td.__getattribute__("month")) #当前月:11

print ("20191102's day is",td.__getattribute__("day")) #当前日:24

#.fromtimestamp()方法,通过给定的时间戳,返回对应的date对象

print (datetime.fromtimestamp(time.time())) #2019-11-25 06:59:23.325629

print (datetime.utcfromtimestamp(time.time())) #2019-11-24 22:59:23.325629 差8小时

print (date.fromtimestamp(time.time())) #2019-11-25

print (datetime.now()) #2019-11-25 06:59:23.325629

print (datetime.now().date()) #2019-11-25

print (datetime.now().time()) #06:59:23.325629

print (datetime.utcnow()) #2019-11-24 22:59:23.325629 差8小时

print (time.time()) #1574636363.3256292

print (datetime.today()) #2019-11-25 07:03:10.692589

print (datetime.today().date()) #2019-11-25

print (date.today()) #2019-11-25

"""用于日期比较大小的方法:

方法名 方法说明 用法

__eq__(…) 等于(x==y) x.__eq__(y)

__ge__(…) 大于等于(x>=y) x.__ge__(y)

__gt__(…) 大于(x>y) x.__gt__(y)

__le__(…) 小于等于(x<=y) x.__le__(y)

__lt__(…) 大于(x

__ne__(…) 不等于(x!=y) x.__ne__(y)

__sub__(…) x - y x.__sub__(y)

__rsub__(…) y - x x.__rsub__(y)"""a=date(2017,3,1)

b=date(2017,3,15)print("a=b,a.__eq__(b)",a.__eq__(b)) #print("a≥b,a.__ge__(b)",a.__ge__(b)) #print("a>b,a.__gt__(b)",a.__gt__(b)) #print("a≤b,a.__le__(b)",a.__le__(b)) #print("a

print("b-a,a.__rsub__(b)",a.__rsub__(b)) #14 days, 0:00:00

print("a-b,.__sub__(b)",a.__sub__(b).days) #-14(获取相差的天数,使用.days)

print("b-a,a.__rsub__(b)",a.__rsub__(b).days) #14 (获取相差的天数,使用.days)

"""日期符合ISO标准,三个方法:

1、isocalendar(...):返回包含三个值的元组,依次为:year年份,week number周数,weekday星期数(周一为1…周日为7):

2、isoformat(...): 返回符合ISO 8601标准 (YYYY-MM-DD) 的日期字符串

3、isoweekday(...): 返回符合ISO标准的指定日期所在的星期数(周一为1…周日为7)"""

print (a.isocalendar()) #(2017, 9, 3)

print (a.isocalendar()[0]) #获取年

print (a.isocalendar()[1]) #获取周数

print (a.isocalendar()[2]) #获取星期

print (a.isoformat()) #2017-03-01

print (a.isoweekday()) #获取周数

print (a.weekday()) #获取星期,周一为0

"""格式化日期:date转为str,日期转为字符串显示

__format__(...)方法以指定格式进行日期输出(与此方法等价的方法为strftime(...)),或者使用.__str__()方法"""

print (a.__str__()) #2017-03-01

print (a.__format__("%Y-%m-%d")) #2017-03-01

print (a.strftime("%Y-%m-%d")) #2017-03-01

print (a.__format__("%Y/%m/%d")) #2017/03/01(大写的Y)

print (a.strftime("%Y/%m/%d")) #2017/03/01(大写的Y)

print (a.__format__("%Y%m%d")) #20170301(大写的Y)

print (a.strftime("%Y%m%d")) #20170301(大写的Y)

print (a.__format__("%y/%m/%d")) #17/03/01(小写的y)

print (a.strftime("%y/%m/%d")) #17/03/01(小写的y)

print (a.__format__("%D")) #03/01/17

print (a.strftime("%D")) #03/01/17

#日期练习题;计算日期差,方法一:直接减

sum =0

dates= ['2019-1-2','2019-1-27','2019-2-25','2019-3-25','2019-4-22','2019-5-20','2019-6-16','2019-7-19','2019-8-15','2019-9-10','2019-10-9','2019-10-31','2019-11-24']for i in range(len(dates)-1):

dateq= datetime.strptime(dates[i],'%Y-%m-%d').date() #字符串格式转为日期格式

dateh = datetime.strptime(dates[i+1],'%Y-%m-%d').date() #字符串格式转为日期格式

print(dateq,dateh,end='') #,end=''不换行,在行尾显示一个空格

datec =dateh -dateq #两个日期的差

print ('相隔:',datec.days)

sum+=datec.daysprint ("总相隔:",sum,"次数:",len(dates)-1)print("平均总相隔:%.2f" %(sum/(len(dates)-1)))#日期练习题;计算日期差,方法二:使用__sub__()方法

sum =0

dates= ['2019-1-2','2019-1-27','2019-2-25','2019-3-25','2019-4-22','2019-5-20','2019-6-16','2019-7-19','2019-8-15','2019-9-10','2019-10-9','2019-10-31','2019-11-24']for i in range(len(dates)-1):

dateq= datetime.strptime(dates[i],'%Y-%m-%d').date() #字符串格式转为日期格式

dateh = datetime.strptime(dates[i+1],'%Y-%m-%d').date() #字符串格式转为日期格式

print(dateq,dateh,end='') #,end=''不换行,在行尾显示一个空格

datec =dateh.__sub__(dateq) #两个日期的差

print ('相隔:',datec.days)

sum+=datec.daysprint ("总相隔:",sum,"次数:",len(dates)-1)print("平均总相隔:%.2f" %(sum/(len(dates)-1)))"""#常见错误:

问题:TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'

原内容:

from datetime import date

a = datetime.date(2017,3,1)

原因:导入模块时,是从datetime模块中导入了date,所以在写date类时,直接写即可,不用再加datetime

修改后内容:

from datetime import date

a = date(2017,3,1)

import datetime

a = datetime.date(2017,3,1)"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值