目录

Datetime

获取当前时间

获取当前日期

获取当前时间的tuple元组

格式化日期和时间

时间移动

获取两个时间的时间差

时间格式转换

Time

获取距元年(1970.1.1)的秒数

当时时间

格式化时间和日期

休眠

Calendar

打印某个月的月历


Python提供了datetime、time和 calendar 模块用来处理日期和时间,时间间隔是以秒为单位的浮点数。每个时间戳都是自1970年1月1日来算。

Datetime

datetime在python中是用来处理时间的一个模块

datetime模块下又包含了几个类

类名 功能
date 日期对象,常用的属性有year, month, day
time 时间对象
datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
timedelta 时间间隔,即两个时间点之间的长度
datetime_CAPI 日期时间对象C语言接口
tzinfo 时区信息对象

下面介绍datetime中比较常用的一些函数

获取当前时间

from datetime import datetime
>>> print ( datetime.now() )
2018-10-08 08:08:13.296957
>>> print ( datetime.now().time() )
08:08:13.296957
>>> print ( type(datetime.now()) )
<class 'datetime.datetime'>

获取当前日期

from datetime import datetime
>>> print ( datetime.now().date() )
2018-10-08
>>> print ( type(datetime.now().date() ) )
<class 'datetime.date'>

获取当前时间的tuple元组

from datetime import datetime
print(datetime.now().timetuple())
//time.struct_time(tm_year=2018, tm_mon=11, tm_mday=1, tm_hour=16, tm_min=21, tm_sec=5, tm_wday=3, tm_yday=305, tm_isdst=-1)
print(datetime.now().timetuple().tm_year) //2018 年
print(datetime.now().timetuple().tm_mon) //11 月
print(datetime.now().timetuple().tm_mday) //1 日
print(datetime.now().timetuple().tm_hour) //16 时
print(datetime.now().timetuple().tm_min) //21 分
print(datetime.now().timetuple().tm_sec) //5 秒
print(datetime.now().timetuple().tm_wday) //3 0-6 0是周一,6是周日
print(datetime.now().timetuple().tm_yday) //305 一年中的第几天
print(datetime.now().timetuple().tm_isdst) //-1 是否为下令时 1为是 0为不是 -1为未知,默认为-1

格式化日期和时间

from datetime import datetime
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
#############
2018-11-01 19:25:45

时间移动

使用datetime.timedelta这个方法来前后移动时间,可以用的参数有weeks,days,hours,minutes,seconds,microseconds。使用 days=1代表后一天,days=-1代表前一天,其他参数也一样

from datetime import datetime
from datetime import timedelta
>>>print( datetime.now() )
2018-10-08 08:25:49.546137
>>>print( datetime.now()+ timedelta(days=1))
2018-10-09 08:25:49.547196

获取两个时间的时间差

from datetime import datetime
>>>nowtime=datetime.now()
>>>utctime=datetime.utcnow()
>>>print( nowtime-utctime )
8:00:00
>>>print((nowtime-utctime).total_seconds()) ##以秒计算
28800.0

时间格式转换

datetime转str格式

from datetime import datetime
>>>print( datetime.now() )
2018-10-08 08:33:37.369422
>>>print( datetime.now().strftime("%Y-%m-%d %H:%M:%S") )
2018-10-08 08:33:37
>>>print( datetime.now().strftime("%Y-%m-%d") )
2018-10-08
>>>print( datetime.now().strftime("%H-%M:%S") )
08:33:37

str格式转datetime

from datetime import datetime
>>>print( datetime.strptime("2018-10-08 09:00:00","%Y-%m-%d %H:%M:%S"))
2018-10-08 09:00:00
>>>print( type(datetime.strptime("2018-10-08 09:00:00","%Y-%m-%d %H:%M:%S")) )
<class 'datetime.datetime'>

datetime转timestamp

from datetime import datetime
import time
>>>now=datetime.now()
>>>print(now)
2018-10-08 08:51:42.215168
>>>print( time.mktime(now.timetuple()) )
1538959902.0 ##现在距离1970-01-01 00:00:00的秒数

timestamp转datetime

from datetime import datetime
>>>print( datetime.fromtimestamp(1538959902.0))
2018-10-08 08:51:42

Time

获取距元年(1970.1.1)的秒数

>>import time
>>print(time.time())
1541121353.1594238
>>print(time.ctime(time.time()))
Fri Nov 2 09:15:53 2018

当时时间

import time
localtime=time.localtime() #返回结构时间
asctime=time.asctime(localtime) #将结构时间转换为asctime
print(localtime)
print(asctime)
############
time.struct_time(tm_year=2018, tm_mon=11, tm_mday=1, tm_hour=19, tm_min=13, tm_sec=5, tm_wday=3, tm_yday=305, tm_isdst=0)
Thu Nov 1 19:13:05 2018

格式化时间和日期

import time
formattime1=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
formattime2=time.strftime("%a-%b-%d %H:%M:%S:%Y",time.localtime())
print(formattime1)
print(formattime2)
#############################
2018-11-01 19:16:30
Thu-Nov-01 19:16:30:2018

休眠

import time
time.sleep(10) ##休眠10秒

Calendar

Calendar模块有很广泛的方法用来处理年历和月历

打印某一年和某一个月的月历

import calendar

print("2018年的年历是:")
print(calendar.prcal(2018))
###################################
2018年的年历是:
2018 January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25
29 30 31 26 27 28 26 27 28 29 30 31 April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5 6 1 2 3
2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10
9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17
16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24
23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30
30 July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5 1 2
2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9
9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16
16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23
23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30
30 31 October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4 1 2
8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9
15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16
22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23
29 30 31 26 27 28 29 30 24 25 26 27 28 29 30
31 cal=calendar.month(2018,10)
print("2018年10月的月历是:")
print(cal)
#########################
2018年10月的月历是:
October 2018
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 print(calendar.leapdays(2000,2018)) #返回2000~2018内的闰年数
print(calendar.weekday(2018,11,2)) ##返回2018.11.2是星期几,0-6

Python中的时间日期模块(time、datetime)的更多相关文章

  1. Python中对时间日期的处理方法简单汇总

    这篇文章主要介绍了Python实用日期时间处理方法汇总,本文讲解了获取当前datetime.获取当天date.获取明天/前N天.获取当天开始和结束时间(00:00:00 23:59:59).获取两个d ...

  2. 解决 python 中,时间日期不能序列化的问题

    在python 中, 你在数据库娶到了数据中如果含有时间日期,那么你在向前端作为json对象传递的时候呢,就会报错.大致如下: TypeError: datetime.datetime(2017, 1 ...

  3. python、js 时间日期模块time

    python 参考链接:https://www.runoob.com/python/python-date-time.html 时间戳 >>> print(time.time())# ...

  4. Python中好用的模块们

    目录 Python中好用的模块们 datetime模块 subprocess模块 matplotlib折线图 importlib模块 Python中好用的模块们 datetime模块 ​ 相信我们都使 ...

  5. Python 中的时间处理包datetime和arrow

    Python 中的时间处理包datetime和arrow 在获取贝壳分的时候用到了时间处理函数,想要获取上个月时间包括年.月.日等 # 方法一: today = datetime.date.today ...

  6. Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)

    本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...

  7. python中的时间转换

    Python中的时间相关库有: datetime 和time. 主要形式有: datetime timestamp 相互转换: timestamp->datetime: dt = datetim ...

  8. SQLite中的时间日期函数(转)

    SQLite包含了如下时间/日期函数: datetime().......................产生日期和时间date()...........................产生日期tim ...

  9. Python中os和shutil模块实用方法集…

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

随机推荐

  1. 番外----python入门----pip相关

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. 但是,由于pip使用的pip仓库默认为:http://pypi.python.org/ 是国外的 ...

  2. 在Linux上从零开始部署前后端分离的Vue+Spring boot项目

    最近做了一个前后端分离的商城项目来熟悉开发的整个流程,最后希望能有个正式的部署流程,于是试着把项目放在云服务器上,做了一下发现遇到了不少问题,借此记录一下整个部署的过程. 使用的技术栈如标题所说大体上 ...

  3. DataFocus小学堂|客户分析之复活客户分析

    复活客户分析 什么是"复活客户"?如何进行"复活客户分析"呢?今天,我们借助DataFocus系统,来了解一种简单的复活客户分析. 1.何为复活客户 复活客户, ...

  4. WPF 基础 - 资源

    为了避免丢失和损坏,编译器允许我们把外部文件编译进程序主体.成为程序主体不可分割的一部分,这就是传统意义上的程序资源,即二进制资源: WPF 的四个等级资源: 数据库里的数据 (仓库) 资源文件 (行 ...

  5. Apache配置 5.访问日志不记录静态文件

    介绍:项目中的CSS.图片.js都是静态文件.一般会将静态文件放到一个单独的目录中,以方便管理. 1. 配置 # vim /usr/local/apache2.4/conf/extra/httpd-v ...

  6. P2731 骑马修栅栏 Riding the Fences 题解(欧拉回路)

    题目链接 P2731 骑马修栅栏 Riding the Fences 解题思路 存图+简单\(DFS\). 坑点在于两种不同的输出方式. #include<stdio.h> #define ...

  7. Spring基于XML的IoC

    Maven导入Spring依赖 <dependency> <groupId>org.springframework</groupId> <artifactId ...

  8. PTA 数组元素的区间删除

    6-6 数组元素的区间删除 (20 分)   给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素.删除后表中剩余元素保持顺序存储,并且相对位置不能改变. 函数接口定义: ...

  9. python3 输出字符

    import string'''whitespace -- a string containing all ASCII whitespaceascii_lowercase -- a string co ...

  10. 用jar命令打包war远程部署

    最近在看jboss的相关漏洞,用jmx-console进行war远程部署的时候碰到一个jsp转war的问题,研究了半天,记录一下免得搞忘了. 一开始网上是说的直接把jsp文件压缩成zip,再把后缀名改 ...