zoukankan      html  css  js  c++  java
  • Python总结之处理时间(time)、日期时间(datetime)、日历(calendar)

    
    

    1、 模块导入

    # 日期时间对象,常用方法有date(), time()
    >>> from datetime import datetime
    
    # 日期对象,常用属性有year, month, day
    >>> from datetime import date
    
    # 时间对象,常用属性有hour, minute, second, microsecond, tzinfo(时区)
    >>> from datetime import time
    
    # 时间间隔,常用属性有weeks, days, hours, ...
    >>> from datetime import timedelta
    
    # 日期间隔,常用属性有years, months, weeks, days, hours ...
    >>> from dateutil import relativedelta
    注意:此模块需要导入(pip install python-dateutil)

    2、初始化对象

    >>> datetime_obj = datetime.today()
    >>> date_obj = date.today()
    >>> str_obj = '2020-11-10 15:42:53'
    >>> timestamp_obj = '1604994173'

    3、格式转换

    # datetime 转 string (直接使用str强制转换即可)
    >>> str(datetime_obj)            
    '2020-11-10 15:42:53.821000'
    >>> str(date_obj)
    '2020-11-10'
    
    # datetime 格式化成 string
    >>> datetime_obj.strftime('%Y-%m-%d %H:%M:%S')
    '2020-11-10 15:42:53'
    >>> datet_obj.strftime('%Y-%m-%d')
    '2020-11-10'
    
    # datetime 转 date
    >>> datetime_obj.date()
    datetime.date(2012,11,19)
    
    # datetime 转 timestamp
    >>> datetime_obj.timestamp()
    1604994173.821
    # 注意:Python时间戳是以秒为单位,java时间戳则以毫秒为单位
    
    # string 转 datetime
    >>> datetime.strptime(str_obj,'%Y-%m-%d %H:%M:%S')
    datetime.datetime(2020, 11, 10, 15, 42, 53)
    
    # timestamp 转 datetime
    >>> datetime.fromtimestamp(timestamp_obj)
    datetime.datetime(2020, 11, 10, 15, 42, 53)
    
    # date 转 datetime
    >>> datetime.strptime(str(date_obj), '%Y-%m-%d')
    datetime.datetime(2020, 11, 10, 0, 0)

    4、类型判断

    >>> isinstance(datetime_obj, date)
    True
    >>> isinstance(datetime_obj, datetime)
    True
    >>> isinstance(date_obj, date)
    True
    >>> isinstance(date_obj, datetime)
    False

    5、日期时间计算

    # 年限加1
    >>> date_obj + relativedelta.relativedelta(years=1)
    datetime.date(2021, 11, 10)
    
    # 月限减1
    >>> date_obj - relativedelta.relativedelta(months=1)
    datetime.date(2020, 10, 10)
    >>> datetime_obj + relativedelta.relativedelta(months=-1)
    datetime.datetime(2020, 10, 10, 15, 42, 53, 821000)
    
    # 星期加减1
    >>> date_obj + relativedelta.relativedelta(weeks=-1)
    datetime.date(2020, 11, 3)
    >>> date_obj + datetime.timedelta(weeks=1)
    datetime.date(2020, 11, 17)
    
    # 天数减1
    >>> date_obj - relativedelta.relativedelta(days=1)
    datetime.date(2020, 11, 9)

    # 小时加1
    >>> datetime_obj + datetime.timedelta(hours=1) datetime.datetime(2020, 11, 10, 16, 42, 53, 821000)

    # 分钟(minutes)、秒(seconds)、毫秒(microseconds)以此类推即可

    6、日历模块

    >>> import calendar
    >>> calendar.month(2018, 12)
       December 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
    
    # 设置每周以周三开始算
    >>> calendar.setfirstweekday(2)
    # 判断是否是闰年 >>> print(calendar.isleap(2018)) False
    # 返回某月的第一天是星期几和这个月的天数 >>> print(calendar.monthrange(2018, 12)) (5, 31)
    Python中时间日期格式化符号:
        ------------------------------------
        %y 两位数的年份表示(00-99%Y 四位数的年份表示(000-9999%m 月份(01-12%d 月内中的一天(0-31%H 24小时制小时数(0-23%I 12小时制小时数(01-12%M 分钟数(00=59%S 秒(00-59%a 本地简化星期名称
        %A 本地完整星期名称
        %b 本地简化的月份名称
        %B 本地完整的月份名称
        %c 本地相应的日期表示和时间表示
        %j 年内的一天(001-366%p 本地A.M.或P.M.的等价符
        %U 一年中的星期数(00-53)星期天为星期的开始
        %w 星期(0-6),星期天为星期的开始
        %W 一年中的星期数(00-53)星期一为星期的开始
        %x 本地相应的日期表示
        %X 本地相应的时间表示
        %Z 当前时区的名称 

    作者:Leozhanggg

    出处:https://www.cnblogs.com/leozhanggg/p/13954504.html

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Memcache
    在.net中读写config文件的各种方法
    Visual Studio 2013 Web开发、新增功能:“Browser Link”
    Web.Config文件中使用configSource
    方正S4101g笔记本电脑搜不到无线网络
    *.bz2和*.gz分别是什么压缩格式
    HTTP 错误 500.19
    【Java】得到当前股票信息
    【Java】得到当前系统时间,精确到毫秒
    【Java】SHA加密
  • 原文地址:https://www.cnblogs.com/leozhanggg/p/13954504.html
Copyright © 2011-2022 走看看