PYTHON基础-时间日期处理小结


Posted in Python onMay 05, 2018

步骤:

1. 掌握几种对象及其关系
2. 了解每类对象的基本操作方法
3. 通过转化关系转化

涉及对象

1. datetime

>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2018, 1, 12, 23, 9, 12, 946118)
>>> type(now)
<type 'datetime.datetime'>

2. timestamp

>>> import time
>>> time.time()
1421075455.568243

3. time tuple

>>> import time
>>> time.localtime()
time.struct_time(tm_year=2015, tm_mon=1, tm_mday=12, tm_hour=23, tm_min=10, tm_sec=30, tm_wday=0, tm_yday=12, tm_isdst=0)

4. string

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2015-01-12 23:13:08'

5. date

>>> import datetime
>>> datetime.datetime.now().date()
datetime.date(2015, 1, 12)

datetime基本操作

1. 获取当前datetime

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2015, 1, 12, 23, 26, 24, 475680)

2. 获取当天date

>>> datetime.date.today()
datetime.date(2015, 1, 12)

3. 获取明天/前N天

明天

>>> datetime.date.today() + datetime.timedelta(days=1)
datetime.date(2015, 1, 13)

三天前

>>> datetime.datetime.now()
datetime.datetime(2015, 1, 12, 23, 38, 55, 492226)
>>> datetime.datetime.now() - datetime.timedelta(days=3)
datetime.datetime(2015, 1, 9, 23, 38, 57, 59363)

4. 获取当天开始和结束时间(00:00:00 23:59:59)

>>> datetime.datetime.combine(datetime.date.today(), datetime.time.min)
datetime.datetime(2015, 1, 12, 0, 0)
>>> datetime.datetime.combine(datetime.date.today(), datetime.time.max)
datetime.datetime(2015, 1, 12, 23, 59, 59, 999999)

5. 获取两个datetime的时间差

>>> (datetime.datetime(2015,1,13,12,0,0) - datetime.datetime.now()).total_seconds()
44747.768075

6. 获取本周/本月/上月最后一天

本周

>>> today = datetime.date.today()
>>> today
datetime.date(2015, 1, 12)
>>> sunday = today + datetime.timedelta(6 - today.weekday())
>>> sunday
datetime.date(2015, 1, 18)

本月

>>> import calendar
>>> today = datetime.date.today()
>>> _, last_day_num = calendar.monthrange(today.year, today.month)
>>> last_day = datetime.date(today.year, today.month, last_day_num)
>>> last_day
datetime.date(2015, 1, 31)

获取上个月的最后一天(可能跨年)

>>> import datetime
>>> today = datetime.date.today()
>>> first = datetime.date(day=1, month=today.month, year=today.year)
>>> lastMonth = first - datetime.timedelta(days=1)

关系转换

几个关系之间的转化

Datetime Object / String / timestamp / time tuple 

 关系转换例子

datetime <=> string

datetime -> string 

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2015-01-12 23:13:08'

string -> datetime

>>> import datetime
>>> datetime.datetime.strptime("2014-12-31 18:20:10", "%Y-%m-%d %H:%M:%S")
datetime.datetime(2014, 12, 31, 18, 20, 10)

datetime <=> timetuple

datetime -> timetuple

>>> import datetime
>>> datetime.datetime.now().timetuple()
time.struct_time(tm_year=2015, tm_mon=1, tm_mday=12, tm_hour=23, tm_min=17, tm_sec=59, tm_wday=0, tm_yday=12, tm_isdst=-1)

timetuple -> datetime

timetuple => timestamp => datetime [看后面datetime<=>timestamp]

datetime <=> date

datetime -> date

>>> import datetime
>>> datetime.datetime.now().date()
datetime.date(2015, 1, 12)

date -> datetime

>>> datetime.date.today()
datetime.date(2015, 1, 12)
>>> today = datetime.date.today()
>>> datetime.datetime.combine(today, datetime.time())
datetime.datetime(2015, 1, 12, 0, 0)
>>> datetime.datetime.combine(today, datetime.time.min)
datetime.datetime(2015, 1, 12, 0, 0)

datetime <=> timestamp

datetime -> timestamp

>>> now = datetime.datetime.now()
>>> timestamp = time.mktime(now.timetuple())
>>> timestamp
1421077403.0

timestamp -> datetime

>>> datetime.datetime.fromtimestamp(1421077403.0)
datetime.datetime(2015, 1, 12, 23, 43, 23)

这篇文章就介绍到这了,基本上都是python的关于日期时间操作的基础知识点,需要掌握好

Python 相关文章推荐
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
python根据出生日期获得年龄的方法
Mar 31 Python
Python中return语句用法实例分析
Aug 04 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 Python
python实现发送邮件功能代码
Dec 14 Python
利用Python写一个爬妹子的爬虫
Jun 08 Python
Python异常的检测和处理方法
Oct 26 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
python tkinter控件布局项目实例
Nov 04 Python
Python和Anaconda和Pycharm安装教程图文详解
Feb 04 Python
python数据分析:关键字提取方式
Feb 24 Python
python import 上级目录的导入
Nov 03 Python
python 日期操作类代码
May 05 #Python
Python批量发送post请求的实现代码
May 05 #Python
PyQt5 pyqt多线程操作入门
May 05 #Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 #Python
python中in在list和dict中查找效率的对比分析
May 04 #Python
Django如何配置mysql数据库
May 04 #Python
Python实现求一个集合所有子集的示例
May 04 #Python
You might like
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
php实现图片缩放功能类
2013/12/18 PHP
session 加入redis的实现代码
2016/07/15 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
Python读写压缩文件的方法
2020/07/30 Python
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
eBay德国站:eBay.de
2017/09/14 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
美容院营销方案
2014/03/05 职场文书
领导欢迎词范文
2015/01/26 职场文书
停发工资证明范本
2015/06/12 职场文书
小学英语教学反思范文
2016/02/15 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android