datetime是python当中比较常用的时间模块,用于获取时间,时间类型之间转化等,下文介绍两个实用类。

一、datetime.datetime类:

datetime.datetime.now():返回系统当前时间(2018-09-18 18:39:55.921602)

datetime.datetime.now().date():返回当前时间的日期(2018-09-18)

datetime.datetime.now().time():返回当前时间的时分秒(18:40:24.946237)

datetime.datetime.ctime():将datetime.datetime类型转化成str类型

testtime  = datetime.datetime.ctime(datetime.datetime.now())
print(type(testtime))
print(testtime) #<class 'str'>
#Tue Sep 18 18:50:23 2018

 时间格式转化成字符串:

datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'):返回时间的字符串(2018-11-09 14:42:36)

字符串转化成时间格式

datetime.datetime.strptime('2018-11-09 14:42:36','%Y-%m-%d %H:%M:%S'):返回datetime.datetime类型的时间(2018-11-09 14:42:36)

代表日期格式化的符号

%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)

%a 本地简化星期名称

%A 本地完整星期名称

%b 本地简化的月份名称

%B 本地完整的月份名称

%c 本地相应的日期表示和时间表示

%j 年内的一天(001-366)

%p 本地A.M.或P.M.的等价符

%U 一年中的星期数(00-53)星期天为星期的开始

%w 星期(0-6),星期天为星期的开始

%W 一年中的星期数(00-53)星期一为星期的开始

%x 本地相应的日期表示

%X 本地相应的时间表示

%Z 当前时区的名称

二、datetime.timedelta

datetime.timedelta用来计算两个datetime.datetime或者datetime.date类型之间的时间差。

def __new__(cls, days=0, seconds=0, microseconds=0,
   milliseconds=0, minutes=0, hours=0, weeks=0):

从构造函数中来看,参数可选:days、seconds、microseconds、milliseconds、minutes、hours、weeks,且默认是0。

这个函数能很方便的解决时间之间的计算问题,比如说我们想知道300天前的今天是几号,可以这样实现:

>>> now = datetime.datetime.now().date()
>>> now
datetime.date(2018, 11, 9)
>>> delta = datetime.timedelta(days = 300)
>>> now - delta
datetime.date(2018, 1, 13)

datetime.timedelta()也可以多个参数,比如计算300天12小时前的时间。

>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2018, 11, 9, 15, 30, 36, 156323)
>>> delta = datetime.timedelta(days = 300,hours = 12)
>>> now - delta
datetime.datetime(2018, 1, 13, 3, 30, 36, 156323)

计算总天数和秒数。

>>> datetime.timedelta(days=1,hours = 2).days
1
>>> datetime.timedelta(days=1,hours = 2).total_seconds()
93600.0

python datetime模块详解的更多相关文章

  1. (转)python time模块和datetime模块详解

    python time模块和datetime模块详解 原文:http://www.cnblogs.com/tkqasn/p/6001134.html 一.time模块 time模块中时间表现的格式主要 ...

  2. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明  一.简介 ...

  3. python docopt模块详解

    python docopt模块详解 docopt 本质上是在 Python 中引入了一种针对命令行参数的形式语言,在代码的最开头使用 """ ""&q ...

  4. (转)python collections模块详解

    python collections模块详解 原文:http://www.cnblogs.com/dahu-daqing/p/7040490.html 1.模块简介 collections包含了一些特 ...

  5. python pathlib模块详解

    python pathlib模块详解    

  6. Python Fabric模块详解

    Python Fabric模块详解 什么是Fabric? 简单介绍一下: ​ Fabric是一个Python的库和命令行工具,用来提高基于SSH的应用部署和系统管理效率. 再具体点介绍一下,Fabri ...

  7. python time 模块详解

    Python中time模块详解 发表于2011年5月5日 12:58 a.m.    位于分类我爱Python 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括: ...

  8. python time模块和datetime模块详解

    一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...

  9. Python全栈之路----常用模块----datetime模块详解

    相比于time模块,datetime模块的接口则更直观,更容易调用. datetime模块定义了下面这几个类: datetime.date:表示日期的类,常用的属性有year,month,day: d ...

随机推荐

  1. 2019浙江省赛K zoj4110 Strings in the Pocket(manachar)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=6012 题意 给你两个串,可以翻转a串的一个区间,问有多少对l,r使得翻转后的a ...

  2. Notes on Operating System

  3. VS中Debug与Release、_WIN32与_WIN64的区别

    一.Debug与Release 1.  区别 Debug——调试版,生成的.exe中包含很多调试信息,若直接发包,比较大: Release——发布版 2.  如何区分是Debug编译还是Release ...

  4. php中出现乱码

    对于初学着来说,编辑中文php时,会出现乱码 在php代码中加入 随后在浏览器中,就会看到如下页面 这样就解决了php 中文乱码的问题.

  5. 【adb】执行adb devices 设备offline

    解决办法: 1.执行adb kill-server,在执行adb devices 2.重启手机 ---------------------------------------------------- ...

  6. mac上terminal_问题_1117

    (1)安装Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install ...

  7. wordcounter

    这周是一个wc的程序,通过C语言在WINDOWS上实现的. 我在通过参考的代码后,发现WC程序的代码其实相当简洁,主要的代码不过十数行.主要通过设置一个字符型变量,这个变量可以得到一个从键盘输入的字符 ...

  8. nohup和&后台运行,进程查看及终止

    1.nohup 用途:不挂断地运行命令. 语法:nohup Command [ Arg … ] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup ...

  9. JAVA泛型实现原理

    1. Java范型时编译时技术,在运行时不包含范型信息,仅仅Class的实例中包含了类型参数的定义信息.泛型是通过java编译器的称为擦除(erasure)的前端处理来实现的.你可以(基本上就是)把它 ...

  10. InnoDB Insert Buffer(插入缓冲)

    InnoDB Insert Buffer(插入缓冲) 每个存储存储引擎自身都有自己的特性(决定性能以及更高可靠性),而InnoDB的关键特性有: 插入缓冲(Insert Buffer)-->Ch ...