oracle给日期加上时分秒_Python3.7知其然知其所以然-第十八章 日期函数

111448ecf14f82b0c254295e492bfc17.png

时光不可追,往事不可回。以往创建的数据,如若没有日期做标识,不堪回首。几乎任何一个产品都会用到日期,如登录日期、创建日期、修改日期等。正因如此,编程语言中,几乎都有内置日期函数。

18.1 当前日期

获取日期和时间的有datetime和time模块。其中datetime模块对time模块进行了封装。用datetime.now()获取到当前日期和时间,并可在返回结果当中,可只取其中的一部分内容如年份、月份。

# 获取当前日期和日期from datetime import datetimenow = datetime.now()print(now)# 获取年份、月份等y = now.year # 年份m = now.month # 月份d = now.day # 天h = now.hour # 时m = now.minute # 分s = now.second # 秒print(y, m, d, h, m, s)

开发产品时,用时间戳表示唯一值或比较,是常有的事。时间戳可通过time模块获取。

# 获取当前日期和日期import timet = time.time()# 10位时间戳print(int(t))# 13位时间戳print(int(t*1000))

18.2 日期计算

两个日期相差多少天, 今天的n天后的日期,明天的日期等这种情况,就需要进行日期计算,它可通过datetime.timedelta()方法实现。

(1) 获取昨天日期,利用当前日期减去一天

# 计算出昨天日期from datetime import datetime, timedeltanow = datetime.now().date()date = now - timedelta(days=1)print(date)

(2) 获取20后的日期,利用当前日期加上20天

# 算出20天后的日期from datetime import datetime, timedeltanow = datetime.now().date()date = now + timedelta(days=20)print(date)

18.3 格式日期

格式化日期,在编程中,是常用的,如2019-01-01这种格式。格式使用strftime(format)方法,format内容由特殊的字符组成。%y两位数的年份表示(00-99),%Y四位数的年份表示(000-9999),%m月份(01-12),%d 月内中的一天(0-31),%H 24小时制小时数(0-23),%I 12小时制小时数(01-12),%M 分钟数(00=59),%S秒(00-59)。

# 日期格式化from datetime import datetimenow = datetime.now()print(now)# 日期转化为字符串s = datetime.strftime(now, "%Y-%m-%d")print(s)# 日期转化为整型s = datetime.strftime(now, "%Y%m%d")print(int(s))# 时分秒h = datetime.strftime(now, "%H:%M:%S")print(h)

18.4 日期库

Python针对日期时间的处理提供了大量的package,类和方法,但在使用上挺繁琐,挺别扭的。好在有一些好用的第三方日期库可供使用,特别是Arrow。它提供了一个合理的、人性化的方法来操作日期。要使用Arrow库,先通过:pip3 install arrow下载和安装。

用完arrow后,心里轻舒了一口气,感觉就是爽,爽,爽。

# 引入arrow模块import arrowt = arrow.now()# 获取年份和月份y = t.datetime.yearm = t.datetime.monthprint(y, m)# 时间戳ts = t.timestampprint(ts)# 日期格式化f = t.format("YYYY-MM-DD HH:mm:ss")print(f)

时间推移就是要获取某个时间之前的时间或者之后的时间,比如要获取相对于当前时间前一天的时间。Arrow在这方面的计算也挺方便的。

# 计算出昨天日期import arrowt = arrow.now()t = t.shift(days=-1)t = t.format("YYYY-MM-DD")print(t)# 算出明天日期t = arrow.now()t = t.shift(days=1)t = t.format("YYYY-MM-DD")print(t)# 算出三个月前的今天t = arrow.now()t = t.shift(months=-3)t = t.format("YYYY-MM-DD")print(t)# 日期转为整数t = arrow.now()t = t.format("YYYYMMDD")print(int(t))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值