Python中datetime常用时间处理方法

494次阅读  |  发布于5年以前

常用时间转换及处理函数:


    import datetime
    # 获取当前时间
    d1 = datetime.datetime.now()
    print d1
    # 当前时间加上半小时
    d2 = d1 + datetime.timedelta(hours=0.5)
    print d2
    # 格式化字符串输出
    d3 = d2.strftime('%Y-%m-%d %H:%M:%S')
    print d3
    # 将字符串转化为时间类型
    d4 = datetime.datetime.strptime(date,'%Y-%m-%d %H:%M:%S.%f')
    print d4

获取本周和本月第一天的日期:


    # -*- coding:utf-8 -*-
    import datetime
    def first_day_of_month():
      '''
      获取本月第一天
      :return:
      '''
      # now_date = datetime.datetime.now()
      # return (now_date + datetime.timedelta(days=-now_date.day + 1)).replace(hour=0, minute=0, second=0,
      # microsecond=0)
      return datetime.date.today() - datetime.timedelta(days=datetime.datetime.now().day - 1)
    def first_day_of_week():
      '''
      获取本周第一天
      :return:
      '''
      return datetime.date.today() - datetime.timedelta(days=datetime.date.today().weekday())
    if __name__ == "__main__":
      this_week = first_day_of_week()
      last_week = this_week - datetime.timedelta(days=7)
      this_month = first_day_of_month()
      last_month = this_month - datetime.timedelta(days=(this_month - datetime.timedelta(days=1)).day)
      print this_week
      print last_week
      print this_month
      print last_month

    #! /usr/bin/python
    # coding=utf-8

    import datetime

    """
    datetime的功能强大
    能支持0001年到9999年
    """

    """
    当前时间
    返回的是一个datetime类型
    now方法有个参数tz,设置时区类型。如果没有和方法today的效果一样
    """
    now = datetime.datetime.now()
    #UTC时间
    datetime.datetime.utcnow()
    attrs = [
    ("year","年"),('month',"月"),("day","日"),('hour',"小时"),( 'minute',"分"),( 'second',"秒"),( 'microsecond',"毫秒"),(
    'min',"最小"),( 'max',"最大"),
    ]
    for k,v in attrs:
      "now.%s = %s #%s" % (k,getattr(now, k),v)


    """
    返回一个time结构
    """
    now.timetuple() 

    """
    返回一个date类型

    """
    now.date()

    """
    返回一个time类型

    """
    now.time()

    """
    当前星期几。星期一是0,星期于是6
    注意这里是方法,不是属性哦。
    """
    now.weekday()

    """
    当前星期几。星期一是1,星期于是7
    注意这里是方法,不是属性哦。
    """
    now.isoweekday()

    """
    修改当前时间。比如修改成当月1号
    """
    now.replace(day=1)

    past = datetime.datetime(2010,11,12,13,14,15,16)

    """
    进行比较运算
    返回的是timedelta类型

    """
    now-past
    """
    转成字符串
    详细规则见Time篇

    """
    strdatetime = now.strftime("%Y-%m-%d %H:%M:%S")
    """
    字符串生成datetime对象
    """
    datetime.datetime.strptime(strdatetime, "%Y-%m-%d %H:%M:%S")

以上所述就是本文的全部内容了,希望大家能够喜欢。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8