zoukankan      html  css  js  c++  java
  • 30例 | 一文搞懂python日期时间处理

    前言

    datetime是python的内置模块,用来处理日期和时间。

    该模块常用的类有:

    类名 功能说明
    date 日期对象
    time 时间对象
    datetime 日期时间对象
    timedelta 时间间隔
    tzinfo 时区信息对象

    本文旨在讲解datetime模块中datetime类的使用方法。datetime对象是 date 与 time 的结合体,涵盖了datetime对象的所有信息。

    一、导入datetime

    第一步,先导入datetime类:

    from datetime import datetime
    

    二、构造datetime对象

    datetime(2019,12,6,13,30,50)
    # 输出 : datetime.datetime(2019, 12, 6, 13, 30, 50)
    

    参数范围:

    • (MINYEAR <= year <= MAXYEAR)
    • (1 <= month <= 12)
    • (1 <= day <= 指定年月的天数)
    • (0 <= hour < 24)
    • (0 <= minute < 60)
    • (0 <= second < 60)
    • (0 <= microsecond < 1000000)

    实例:

    datetime(2019,12,6,13,30,50)
    # 输出 : datetime.datetime(2019, 12, 6, 13, 30, 50)
    

    三、类方法

    1. datetime.today()

    返回本地区当前日期时间datetime对象

    datetime.today()
    # 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)
    
    1. datetime.now(tz=None)

    返回本地区当前日期时间datetime对象,可以添加时区tz 默认无时区时,返回结果和datetime.today()一致

    datetime.now()
    # 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)
    
    1. datetime.utcnow()

    返回UTC(同格林尼治时间)日期时间datetime对象

    datetime.now()
    # 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)
    
    1. datetime.fromtimestamp(timestamp, tz=None)

    返回给定时间戳的datetime对象,时区默认为空,返回当地日期时间,也可以指定时区

    datetime.fromtimestamp(1575877756)
    # 输出 : datetime.datetime(2019, 12, 9, 15, 49, 16)
    

    想获取当前时间戳,可通过time模块的time方法实现:

    import time
    time.time()
    # 输出:1575877756.4673727
    
    1. datetime.utcfromtimestamp(timestamp)

    返回给定时间戳的datetime对象,日期时间默认为UTC(同格林尼治时间)

    datetime.fromtimestamp(1575877756)
    # 输出 : datetime.datetime(2019, 12, 9, 7, 49, 16)
    
    1. datetime.fromordinal(ordinal)

    输入参数为天数,返回从公元0年开始计数的年、月、日datetime对象 比如输入参数为365,则返回1-12-31

    datetime.fromordinal(365)
    # 输出 : datetime.datetime(1, 12, 31, 0, 0)
    
    1. datetime.combine(date, time, tzinfo=self.tzinfo)

    拼接datetime对象,形成一个新的datetime对象 可以输入时区参数,否则默认为原time的时区

    date_ = datetime.today().date()
    time_ = datetime.today().time()
    datetime.combine(date_,time_)
    # 输出 : datetime.datetime(2019, 12, 9, 16, 12, 56, 914484)
    
    1. datetime.strptime(date_string, format)

    将格式化日期时间字符串,转换为datetime对象,可以转换日期、时间、日期时间

    datetime.strptime('2019-11-05','%Y-%m-%d')
    # 输出 : datetime.datetime(2019, 11, 5, 0, 0)
    datetime.strptime('09:30:50','%H:%M:%S')
    # 输出 : datetime.datetime(1900, 1, 1, 9, 30, 50)
    datetime.strptime('2019-11-05 09:30:50','%Y-%m-%d %H:%M:%S')
    # 输出 : datetime.datetime(2019, 11, 5, 9, 30, 50)
    

    四、实例方法

    1. datetime.date()

    返回date对象

    d = datetime(2019,12,6,13,30,50)
    d.date()
    # 输出 : datetime.date(2019, 12, 6)
    
    1. datetime.time()

    返回time对象

    d = datetime(2019,12,6,13,30,50)
    d.time()
    # 输出 : datetime.time(13, 30, 50)
    
    1. datetime.timestamp()

    对于给定的 datetime对象返回时间戳

    d = datetime(2019,12,6,13,30,50)
    d.timestamp()
    # 输出 : 1575610250.0
    
    1. datetime.weekday()

    返回星期几,星期一为 0,星期天为 6

    d = datetime(2019,12,6,13,30,50)
    d.weekday()
    # 输出 : 4
    
    1. datetime.isoweekday()

    返回星期几,星期一为 1,星期天为 7

    d = datetime(2019,12,6,13,30,50)
    d.isoweekday()
    # 输出 : 5
    
    1. datetime.isocalendar()

    返回数组:(年、第多少周、星期几)

    d = datetime(2019,12,6,13,30,50)
    d.isocalendar()
    # 输出 : (2019, 49, 5)
    
    1. datetime.ctime()

    返回日期时间的字符串表示

    d = datetime(2019,12,6,13,30,50)
    d.ctime()
    # 输出 : 'Fri Dec  6 13:30:50 2019'
    
    1. datetime.strftime(date_string, format)

    datetime对象转换为格式化字符串

    d = datetime.today()
    datetime.strftime(d,'%Y-%m-%d %H:%M:%S')
    # 输出 : '2019-12-09 16:32:18'
    
    1. datetime.toordinal()

    返回从公元0年到指定datetime的天数

    d = datetime(2019,12,6,13,30,50)
    d.toordinal()
    # 输出 : 737399
    

    五、类实例属性

    1. datetime.year

    返回给定datetime对象的年份

    d = datetime(2019,12,6,13,30,50)
    d.year
    # 输出 : 2019
    
    1. datetime.month

    返回给定datetime对象的月份

    d = datetime(2019,12,6,13,30,50)
    d.month
    # 输出 : 12
    
    1. datetime.day

    返回给定datetime对象的天数(一个月的某天)

    d = datetime(2019,12,6,13,30,50)
    d.day
    # 输出 : 6
    
    1. datetime.hour

    返回给定datetime对象的小时数(一天的某时)

    d = datetime(2019,12,6,13,30,50)
    d.hour
    # 输出 : 13
    
    1. datetime.minute

    返回给定datetime对象的分钟数(一小时的某分)

    d = datetime(2019,12,6,13,30,50)
    d.minute
    # 输出 : 30
    
    1. datetime.second

    返回给定datetime对象的秒数(一分钟的某秒)

    d = datetime(2019,12,6,13,30,50)
    d.second
    # 输出 : 50
    
    1. datetime.microsecond

    返回给定datetime对象的毫秒数(一分钟的某秒)

    d = datetime(2019,12,6,13,30,50,3000)
    d.microsecond
    # 输出 : 3000
    
    1. datetime.tzinfo

    返回datetime对象的时区,前提是在创建datetime对象时需传入tzinfo参数,如果没有传入则返回值为None

    # 获取一个含有时区的datetime对象
    import pytz
    sh = pytz.timezone('Asia/Shanghai')
    d = datetime(2018, 11, 1, hour=8, tzinfo=sh)
    d.tzinfo
    # 输出 : <DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>
    

    参考:https://www.jianshu.com/p/7beff16c379d

    六、结论

    本文介绍了datetime模块中datetime类的各种方法和属性,代码案例丰富,分门别类,方便使用时查找。

  • 相关阅读:
    32位二进制IP地址与十进制IP地址互相转换
    在安装AndroidStudio时产生的问题
    Java 数列求和
    Java throws Exception、try、catch
    Java 语句循环
    Oracle OEM
    数据泵Expdp和Impdp
    java查询高斯数据库表某个字段值
    安全测试笔记(未更新完)
    工作笔记
  • 原文地址:https://www.cnblogs.com/RioTian/p/14226021.html
Copyright © 2011-2022 走看看