Datetime 模块

一篇文章搞定Datetime 模块-Python 技术分享 Java技术分享 Python 爬虫技术_微信公众号:zeropython—昊天博客
  1. 如果只关注日期 不关注 时分秒 可以用datetime.date
  2. 如果只关注时分秒 不关注 年月日 可以用.datetime.time
  3. 如果日期和时分秒都关注 就用 datetime.datetime

导入相应的datetime包

Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.
PyDev console: using IPython 6.4.0
Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
import datetime

datetime 能表示最大的年

datetime.MAXYEAR
Out[4]: 9999

datetime 能表示最小的年

datetime.MINYEAR
Out[6]: 1

获取今天的日期

today = datetime.date.today()
today
Out[9]: datetime.date(2019, 1, 9)

获取今天的年

today.year
Out[11]: 2019
today.month
Out[12]: 1
today.day
Out[13]: 9

以上是通过 today 属性获取的 年月日

查看今天是周几

today.weekday()
Out[16]: 2

今天是周三,显示确是2,因为是从0开始的

today.isocalendar()
Out[18]: (2019, 2, 3)
today.isoweekday()
Out[19]: 3

按照国际标准 今天是星期三

如何构造一个日期呢?

birthday = datetime.date(2018,10,10)
birthday.year
Out[23]: 2018
birthday.month
Out[25]: 10
birthday.day
Out[26]: 10

time 只关注 时分秒

t = datetime.time(10,12,30)
t
Out[29]: datetime.time(10, 12, 30)

获取时分秒

t.hour
Out[31]: 10
t.min
Out[32]: datetime.time(0, 0)
t.second
Out[33]: 30

###既关注 年月日 又关注时分秒

now = datetime.datetime.now()
now
Out[36]: datetime.datetime(2019, 1, 9, 15, 16, 32, 943098)
now.day
Out[37]: 9
now.second
Out[38]: 32
now.year
Out[39]: 2019
now.microsecond
Out[40]: 943098

构造年月日 时分秒

tt = datetime.datetime(2018,10,10,2,10,30)
tt.day
Out[43]: 10

时间格式化

字符串转日期时间

datetime.datetime.strptime("str",'时间格式')

strptime 字符串 parse 解析 时间

s = "2018-10-20"
type(s)
Out[6]: str
t = datetime.datetime.strptime(s,"%Y-%m-%d")
t
Out[8]: datetime.datetime(2018, 10, 20, 0, 0)

日期时间 转 字符串

datetime.datetime.strftime('时间格式')

strftime str 从from time

now = datetime.datetime.now()
now.strftime('%Y-%m-%d')
Out[11]: '2019-01-09'

常用的时间占位符

1. %Y 四位年份
2. %y 两位年份
3. %m 两位月份
4. %d 两位日期
5. %H 两位小时
6. %M 两位分钟
7. %S 两位秒
8. %f 微妙
9. %w 星期 0,。。。6

Timedelta 时间跨度处理

Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.
PyDev console: using IPython 6.4.0
Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
import datetime
d =  datetime.datetime(2018,10,10,2,10,30)
birthdate = datetime.datetime(2016,11,12,10,2,10)
d -birthdate
Out[5]: datetime.timedelta(696, 58100)
type(d)
Out[6]: datetime.datetime
diff = d -birthdate
diff.days
Out[8]: 696
diff.min
Out[9]: datetime.timedelta(-999999999)
diff.total_seconds()
Out[10]: 60192500.0
diff.seconds
Out[11]: 58100
d
Out[12]: datetime.datetime(2018, 10, 10, 2, 10, 30)

timedelta

d + datetime.timedelta(days=100)
Out[14]: datetime.datetime(2019, 1, 18, 2, 10, 30)

如果是减去一百天呢?

d + datetime.timedelta(days=-100)
Out[16]: datetime.datetime(2018, 7, 2, 2, 10, 30)
d
Out[17]: datetime.datetime(2018, 10, 10, 2, 10, 30)

如果加上 2000 秒呢

d + datetime.timedelta(seconds=2000)
Out[19]: datetime.datetime(2018, 10, 10, 2, 43, 50)

可以加上小时

d + datetime.timedelta(hours=100)
Out[21]: datetime.datetime(2018, 10, 14, 6, 10, 30)
HTTPX 基础教程-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客