欢迎来到山村网

Python实用日期时间处理方法

2019-03-02 12:33:43浏览:282 来源:山村网   
核心摘要:  这篇文章主要介绍了Python实用日期时间处理方法汇总,本文讲解了获取当前datetime、获取当天date、获取明天/前N天、获取当天

  这篇文章主要介绍了Python实用日期时间处理方法汇总,本文讲解了获取当前datetime、获取当天date、获取明天/前N天、获取当天开始和结束时间(00:00:00 23:59:59)、获取两个datetime的时间差、获取本周/本月/上月最后一天等实用方法 ,需要的朋友可以参考下

  原则, 以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 MySQLdb Windows下安装教程及问题解决方法

上一篇:

python fabric使用笔记

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com