datetime模块是python自带对时间的操作,其常用的四大类分别是date、time、datetime、timedelta。下面分别讲解下这四大类中常用的方法及其属性。

date类

date类的对象有三个参数构成:year、month、day,我们先创建一个对象。

import datetime

a = datetime.date(2018,10,9)
print(a)
>>>2018-10-09

常用方法:

  • 比较日期大小:共有六种方法,分别是__eq__、__ge__、__gt__、__le__、__lt__、__ne__,其分别表示==、>=、>、<=、<、!=,返回的结果是True或False。
import datetime

da = datetime.date(2018,10,9)
be = datetime.date(2018,1,1)
print(da.__eq__(be))
print(da.__ge__(be))
>>>False
True
  • 获取两日期的相差天数:有两种方法,__sub__和__rsub__,这两种方法本质相同,只是一个正向减,一个反向减。
print(da.__sub__(be))
print(da.__rsub__(be))
>>>281 days, 0:00:00
-281 days, 0:00:00
  • ISO标准化日期:有三种格式,一种是年-周数-星期数,方法是isocalender;另一种是年-月-日,方法是isofoemat;最后一种是星期数(周一为1,周日为7),方法是isoweekday。
import datetime

da = datetime.date(2018,10,9)
print(da.isocalendar())
print(da.isoformat())
print(da.isoweekday())
>>>(2018, 41, 2)
2018-10-09
2
  • 获取当前日期:
import datetime
to = datetime.date.today()
print(to)
>>>2018-10-09
  • 日期的格式化输出:有三种方法,__format__和strftime方法差不多,第三种是输出ctime格式。
import datetime
da = datetime.date(2018,10,9)
print(da.__format__('%y/%m/%d'))
print(da.strftime('%Y-%m-%d'))
print(da.ctime())
>>>18/10/09
2018-10-09
Tue Oct 9 00:00:00 2018

time类

time类对象参数有hour、minute、second、microsecond、tzinfo,这些参数都是可选参数。我们先创建一个time对象。

import datetime
da = datetime.time(19,30,30)
print(da)
>>>19:30:30

常用方法:

  • 比较时间大小,这个与date一样,有六种方法。
  • ISO标准化时间:isoformat函数。
print(da.isoformat())
>>>19:30:30
  • 时间字符串输出:有__format__方法和strtfime方法。
import datetime
da = datetime.time(19,30,30)
print(da.__format__('%H/%M/%S'))
print(da.strftime('%I:%M:%S'))
>>>19/30/30
07:30:30

datetime类

datetime类可以看成是date类和time类的结合体,datetime对象的参数有year、month、day、hour、minute、second等,其中年月日参数必须要有。老规矩先创建一个datetime对象。

import datetime
da = datetime.datetime(2018,10,10,0,35,30)
print(da)
>>>2018-10-10 00:35:30

常用方法:

  • 返回当前日期
import datetime
now = datetime.datetime.now()
print(now)
>>>2018-10-10 00:37:31.301851
  • 分别返回对象的日期和时间部分:两个方法,返回日期的date()和返回时间的time()。
print(now.date())
print(now.time())
>>>2018-10-10
00:39:39.242345
  • 返回格林威治时间:utcnow方法
import datetime
now = datetime.datetime.utcnow()
print(now)
>>>2018-10-09 16:40:52.682584
  • 格式化时间输出:用strftime方法
  • combin方法:将一个date和time对象合成一个datetime对象
import datetime

now = datetime.datetime.now()
date = now.date()
time = now.time()
print(datetime.datetime.combine(date,time))
>>>2018-10-10 00:46:21.209452
  • strptime方法:由string、format两个参数返回一个datetime对象
print(datetime.datetime.strptime('2017-3-22 15:25','%Y-%m-%d %H:%M'))
>>>2017-03-22 15:25:00
  • 日期时间转为时间戳:timestamp方法
import datetime
now = datetime.datetime.now()
timestamp = now.timestamp()
print(timestamp)
>>>1539103808.218222
  • 时间戳转为日期时间:fromtimestamp方法
time = datetime.datetime.fromtimestamp(timestamp)
print(time)
>>>2018-10-10 00:51:58.044790

timedelta类

此类包含属性days、seconds、microxeconds。此类创建对象的参数为关键字参数,参数没有年、月,由天、微秒、毫秒、周、小时、分钟。

import datetime

delta = datetime.timedelta(days = 2,hours = 2,minutes=30,seconds = 30,microseconds=300,milliseconds=66,weeks = 1)
print(delta)
>>>9 days, 2:30:30.066300

python模块——datetime的更多相关文章

  1. 潭州课堂25班:Ph201805201 python 模块 datetime,logging 第七课 (课堂笔记)

    datetime 模块 # -*- coding: utf-8 -*-# 斌彬电脑# @Time : 2018/7/9 0009 20:42import datetime d = datetime.d ...

  2. python模块-datetime模块

    上面一篇已经讲了time模块,再来学习datetime模块. datetime主要有datetime.timedelta.time.date这4个子模块. a.datetime常用的函数(dateti ...

  3. python模块datetime

    1. 日期输出格式化 datetime => string import datetime now = datetime.datetime.now() now.strftime('%Y-%m-% ...

  4. python模块--datetime

    datatime.date类 构造器 返回值类型 说明 (year, month, day) date   类方法/属性     .max date datetime.date(9999, 12, 3 ...

  5. Python模块学习系列

    python模块-time python模块-datetime python模块-OS模块详解

  6. Python学习总结14:时间模块datetime & time & calendar (一)

    Python中的常用于处理时间主要有3个模块datetime模块.time模块和calendar模块. 一.time模块 1. 在Python中表示时间的方式 1)时间戳(timestamp):通常来 ...

  7. python模块之time和datetime

    33.python模块之time      1.>>> time.time() 1470900847.8458395 ==>时间戳,从1970年到现在.      2.> ...

  8. Python,datetime模块实例

    Python的标准模块datetime模块,在我们的工作中应用非常频繁,下面对datetime中常用的方法进行了总结和测试:对每一个方法都使用了单元测试框架Unittest来配合测试. 主要的类型有: ...

  9. Python模块 - time,datetime,calendar

    time模块 localtime 当前时间的struct_time形式 >>> time.localtime() time.struct_time(tm_year=2015, tm_ ...

随机推荐

  1. Node.js NPM 包(Package)

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json 包是打 ...

  2. Git的http与ssh配置

    http 进入git bash 直接clone所需项目 通过http方式 eg:git clone http://xxxxxxxxxx/bk_linux_inspect-master.git 会弹出提 ...

  3. java课程之团队开发冲刺阶段2.4

    总结昨天进度: 1.照例学习了课前提醒的功能,不可否认的是,在这个功能上,需要的技术和之前的上课静音有点相似,都是通过广播然后开启service服务,然后进行每分钟的监听,查看时间是否一致,在一致的情 ...

  4. ABP .NET CORE 连接mysql

    1.安装mysql程序集,在项目XXX.EntityFrameworkCore下面添加程序集 pomelo.entityframeworkcore.mysql pomelo.entityframewo ...

  5. Pickle incompatibility of numpy arrays between Python 2 and 3

    Traceback (most recent call last): File "mnist.py", line 7, in <module> train_set, v ...

  6. JPA 开发中遇到的错误

    JPA 开发中遇到的错误 (2011-07-13 16:56:12) 转载▼ 标签: 杂谈 分类: Java/J2EE 常见异常1.异常信息:org.hibernate.hql.ast.QuerySy ...

  7. 浅谈$NTT$

    \(NTT\),快速数论变换,可以理解为带模数的FFT. 原根 & 阶 先来补一点数论.(这里讲的应该很少,都是针对\(ntt\)胡的,具体的话可以去看<初等数论>那本小黄书). ...

  8. css3 实现渐变边框

    (1)一个渐变的底边线border:1px solid transparent;border-image: -webkit-linear-gradient(right, #FF9848,#FF2A2B ...

  9. [BJDCTF2020]Easy MD5

    0x00 知识点 password='".md5($pass,true)."' 链接: https://www.jianshu.com/p/12125291f50d  ffifdy ...

  10. JavaWeb之搭建自己的MVC框架(三)

    1. 前言         在前两节的内容中,我们完成了一个基本的框架搭建.但是如果我们在前端请求中增加参数,我们要怎么传递到后台方法呢?接下来我们就来研讨这部分内容. 2. 实现         ( ...