原则, 以datetime为中心, 起点或中转, 转化为目标对象, 涵盖了大多数业务场景中需要的日期转换处理

步骤:

1. 掌握几种对象及其关系

2. 了解每类对象的基本操作方法

3. 通过转化关系转化

涉及对象

1. datetime

>>> import datetime

>>> now = datetime.datetime.now()

>>> now

datetime.datetime(2015, 1, 12, 23, 9, 12, 946118)

>>> type(now)

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实用日期时间处理方法汇总相关推荐

  1. python中怎么查看二进制转换的数据_python处理二进制数据的方法

    #!/usr/env/env python #-*- coding: cp936 -*- ''''' add Head Infomation for pcm file ''' import sys i ...

  2. 站长在线Python精讲:Python中集合的交集、并集、差集和对称差集运算方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中集合的交集.并集.差集和对称差集运算方法详解>.主要讲的是集合运算的相关的概念,及运算方法,包括:集合的交集. ...

  3. python日历gui_python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例...

    PyQt5日期时间控件QDateTimeEdit介绍 QDateTimeEdit是一个允许用户编辑日期时间的控件,可以使用键盘上的上下键头按钮来增加或减少日期的时间值,QDateTimeEdit通过s ...

  4. Py之wordcloud:python中非常有趣的词云图wordcloud简介、安装、使用方法、案例应用详细攻略

    Py之wordcloud:python中非常有趣的词云图wordcloud简介.安装.使用方法.案例应用详细攻略 目录 wordcloud简介 wordcloud安装 wordcloud使用方法 案例 ...

  5. python官网中cloudword在哪_Py之wordcloud:python中非常有趣的词云图wordcloud简介、安装、使用方法...

    Py之wordcloud:python中非常有趣的词云图wordcloud简介.安装.使用方法.案例应用详细攻略 目录 wordcloud简介 构建词云的方法很多, 但是个人觉得python的word ...

  6. python中使用pip安装报错:Fatal error in launcher... 解决方法

    python中使用pip安装报错:Fatal error in launcher... 解决方法 参考文章: (1)python中使用pip安装报错:Fatal error in launcher.. ...

  7. Python中用于判断两个集合的交集是否为空集isdisjoint()方法

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ​● 标题与摘要 Python中用于判断两个集合的交集是否为空集 isdisjoint ...

  8. python去空格的函数_Python怎么去掉最后的空格

    strip()函数 去空格nrt函数的用法 strip 同时去掉左右两边的空格(推荐学习:Python视频教程) lstrip 去掉左边的空格 rstrip 去掉右边的空格 具体示例如下:>&g ...

  9. python中datetime函数怎么获得当年年份_Python 日期和时间函数使用指南

    在本教程中,我们将介绍 python 的 datetime 模块以及如何使用它来处理日期.时间,以及日期时间的格式化处理. 它包含各种实用示例,可帮助您通过 python 函数更加快捷高效进行日期和时 ...

最新文章

  1. java课程设计日历记事本代码,已开源
  2. JZOJ 1220. Pla
  3. 【NLP】10000亿参数!英伟达用3072块A100训出史上最大最贵GPT!
  4. TP框架对数据库的基本操作
  5. Java剪切板操作大全
  6. Android 开发笔记 一
  7. 计算机毕业设计答辩慌?软工本科 Java EE 毕设项目答辩问题、答案汇总指南奉上
  8. php可变方法,php 函数使用可变数量的参数方法
  9. AcWing1075. 数字转换(树形DP)题解
  10. 服装行业电子商务的概述
  11. java set 添加_Java Set add()用法及代码示例
  12. qq大厅连连看外挂:c++实现
  13. 【原创】从文华财经下载数据并且分析每个期货品种的贝塔值-云金杞
  14. 常用街机模拟器机台设置[更新中](新手看)
  15. 关于c#,PHP socket挂到云服务器上之后本机无法连接的问题
  16. 给定一个成绩a,使用switch结构求出a的等级。A:90-100,B:80-89,C:70-79,D:60-69,E:0~59
  17. 基于Apache Curator框架的ZooKeeper基本用法详解
  18. 什么是数据不平衡问题,应该如何解决
  19. ubuntu16.04登录界面输入用户名密码后又回到登录界面
  20. linux 下网络编程 聊天室项目

热门文章

  1. 网众linux安装教程,网众Linux搭建Samba教程
  2. map怎么转化dto_阿里面试题:为什么Map桶中个数超过8才转为红黑树
  3. python爬虫天气数据_python爬虫:天气数据的分析
  4. Buildroot构建指南——根文件系统(Rootfs)
  5. Android开发之带行号显示的Log工具类
  6. mysql50道题 查询和,Mysql Sql 语句练习题 (50道)
  7. ubuntu nginx php7,ubuntu 16 安装php7+nginx
  8. PyCharm入门教程——在编辑器中选择文本
  9. 阿里云Tech Insight 企业迁云实战专场强势来袭!
  10. 使用 Cockpit 方便地管理容器