• python datetime模块


      1 import time
      2 import datetime
      3 
      4 """
      5 datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1.
      6 datetime模块定义了5个类,分别是
      7 1.datetime.date:表示日期的类
      8 2.datetime.datetime:表示日期时间的类
      9 3.datetime.time:表示时间的类
     10 4.datetime.timedelta:表示时间间隔,即两个时间点的间隔
     11 5.datetime.tzinfo:时区的相关信息
     12 """
     13 
     14 
     15 # 1、date类
     16 """
     17 class date(builtins.object)
     18      |  date(year, month, day) --> date object
     19 """
     20 # 创建datetime.date对象方法
     21 print(datetime.date(2018, 1, 19))                       # 3个int值
     22 print(datetime.date.fromtimestamp(time.time()))         # 时间戳
     23 print(datetime.date(2018, 1, 20).replace(2018, 1, 19))  # 3个int值替换一个datetime.date对象
     24 print(datetime.date.today())                            # 今天的datetime.date对象
     25 print(datetime.date.fromordinal(736713))                # 从一个日期顺序值获取,1对应0001-01-01
     26 
     27 # datetime.date对象的运算方法
     28 print(datetime.date(2018, 1, 19) + datetime.timedelta(1))
     29 print(datetime.date(2018, 1, 19) + datetime.timedelta(-1))
     30 print(datetime.date(2018, 1, 20) - datetime.date(2018, 1, 19))
     31 print(datetime.date(2018, 1, 20) - datetime.timedelta(1))
     32 print(type(datetime.date(2018, 1, 20) - datetime.date(2018, 1, 19)))  # <class 'datetime.timedelta'>
     33 print(datetime.date(2018, 1, 19) == datetime.date(2018, 1, 19))
     34 print(datetime.date(2018, 1, 19) >= datetime.date(2018, 1, 19))
     35 print(datetime.date(2018, 1, 19) > datetime.date(2018, 1, 19))
     36 print(datetime.date(2018, 1, 19) <= datetime.date(2018, 1, 19))
     37 print(datetime.date(2018, 1, 19) < datetime.date(2018, 1, 19))
     38 print(datetime.date(2018, 1, 19) != datetime.date(2018, 1, 19))
     39 
     40 # 获取datetime.date对象属性
     41 print(getattr(datetime.date(2018, 1, 19), 'year'))
     42 print(getattr(datetime.date(2018, 1, 19), 'month'))
     43 print(getattr(datetime.date(2018, 1, 19), 'day'))
     44 print(datetime.date(2018, 1, 19).year)
     45 print(datetime.date(2018, 1, 19).month)
     46 print(datetime.date(2018, 1, 19).day)
     47 
     48 # 判断星期几
     49 # weekday Monday == 0 ... Sunday == 6
     50 print(datetime.date.weekday(datetime.date.today()))
     51 # isoweekday Monday == 1 ... Sunday == 7
     52 print(datetime.date.isoweekday(datetime.date.today()))
     53 
     54 # datetime.date对象格式化
     55 print(repr(datetime.date(2018, 1, 19)))        # datetime.date(2018, 1, 19)
     56 print(type(repr(datetime.date(2018, 1, 19))))  # <class 'str'>
     57 print(str(datetime.date(2018, 1, 19)))         # 2018-01-19
     58 print(datetime.date.ctime(datetime.date(2018, 1, 19)))  # Sat Jan 19 00:00:00 2018
     59 print(datetime.date.isocalendar(datetime.date(2018, 1, 19)))  # (ISO year, week number, and weekday)
     60 print(datetime.date.isoformat(datetime.date(2018, 1, 19)))    # 2018-01-19
     61 print(datetime.date.strftime(datetime.date.today(), '%Y'))
     62 print(datetime.date.timetuple(datetime.date.today()))         # tm_isdst=-1
     63 print(time.localtime())                                       # tm_isdst=0
     64 
     65 # 其他
     66 print(hash(datetime.date(2018, 1, 19)))
     67 print(datetime.date.toordinal(datetime.date.today()))
     68 
     69 
     70 # 2、datetime类
     71 """
     72 class datetime(date)
     73      |  datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
     74      |  
     75      |  The year, month and day arguments are required. tzinfo may be None, or an
     76      |  instance of a tzinfo subclass. The remaining arguments may be ints.
     77 """
     78 
     79 
     80 # 创建datetime.datetime对象方法
     81 print(datetime.datetime(2018, 1, 19, 11, 6, 30, 1000))
     82 print(datetime.datetime.now())
     83 print(datetime.datetime.combine(datetime.date.today(), datetime.time(10, 2, 30)))
     84 print(datetime.datetime.fromtimestamp(time.time()))
     85 print(datetime.datetime.now().replace(2018, 1, 19, 11, 6, 30, 1000))
     86 print(datetime.datetime.strptime('2018-10-20', '%Y-%m-%d'))
     87 print(datetime.datetime.utcfromtimestamp(time.time()))  # 本地时间减8小时
     88 print(datetime.datetime.utcnow())
     89 
     90 # datetime.datetime对象的运算方法
     91 print(datetime.datetime.now() + datetime.timedelta(1))
     92 print(datetime.datetime.now() - datetime.timedelta(1))
     93 print(datetime.datetime.now() - datetime.datetime.now())
     94 print(datetime.datetime.now() == datetime.datetime.now())
     95 print(datetime.datetime.now() >= datetime.datetime.now())
     96 print(datetime.datetime.now() > datetime.datetime.now())
     97 print(datetime.datetime.now() <= datetime.datetime.now())
     98 print(datetime.datetime.now() < datetime.datetime.now())
     99 print(datetime.datetime.now() != datetime.datetime.now())
    100 
    101 # 获取datetime.datetime对象属性
    102 print(getattr(datetime.datetime.now(), 'year'))
    103 print(getattr(datetime.datetime.now(), 'month'))
    104 print(getattr(datetime.datetime.now(), 'day'))
    105 print(getattr(datetime.datetime.now(), 'hour'))
    106 print(getattr(datetime.datetime.now(), 'minute'))
    107 print(getattr(datetime.datetime.now(), 'second'))
    108 print(getattr(datetime.datetime.now(), 'microsecond'))
    109 print(getattr(datetime.datetime.now(), 'tzinfo'))
    110 print(getattr(datetime.datetime.now(), 'fold'))
    111 print(datetime.datetime.now().year)
    112 print(datetime.datetime.now().month)
    113 print(datetime.datetime.now().day)
    114 print(datetime.datetime.now().hour)
    115 print(datetime.datetime.now().minute)
    116 print(datetime.datetime.now().second)
    117 print(datetime.datetime.now().microsecond)
    118 print(datetime.datetime.now().tzinfo)
    119 print(datetime.datetime.now().fold)
    120 
    121 # datetime.datetime对象格式化
    122 print(repr(datetime.datetime.now()))
    123 print(datetime.datetime.ctime(datetime.datetime.now()))
    124 print(datetime.datetime.isoformat(datetime.datetime.now()))
    125 print(datetime.datetime.timestamp(datetime.datetime.now()))
    126 print(datetime.datetime.timetuple(datetime.datetime.now()))
    127 print(datetime.datetime.utctimetuple(datetime.datetime.now()))
    128 
    129 # 其他
    130 print(hash(datetime.datetime.now()))
    131 print(datetime.datetime.astimezone(datetime.datetime.now()))
    132 print(datetime.datetime.time(datetime.datetime.now()))
    133 print(datetime.datetime.timetz(datetime.datetime.now()))
    134 print(datetime.datetime.tzname(datetime.datetime.now()))
    135 print(datetime.datetime.date(datetime.datetime.now()))
    136 print(datetime.datetime.dst(datetime.datetime.now()))
    137 print(datetime.datetime.utcoffset(datetime.datetime.now()))
    138 
    139 # 继承datetime.date对象的方法
    140 # toordinal(...)
    141 # fromordinal(...)
    142 # isoweekday(...)
    143 # weekday(...)
    144 # today(...)
    145 # isocalendar(...)
    146 # strftime(...)
    147 
    148 
    149 # 3、time类
    150 """
    151 class time(builtins.object)
    152      |  time([hour[, minute[, second[, microsecond[, tzinfo]]]]]) --> a time object
    153      |  
    154      |  All arguments are optional. tzinfo may be None, or an instance of
    155      |  a tzinfo subclass. The remaining arguments may be ints.
    156 """
    157 
    158 # 创建datetime.time对象方法
    159 print(datetime.time(11, 40, 30))
    160 print(datetime.time(11, 40, 30).replace(12, 30, 20))
    161 
    162 # datetime.time对象的运算方法
    163 print(datetime.time(11, 40, 30) == datetime.time(11, 40, 30))
    164 print(datetime.time(11, 40, 30) >= datetime.time(11, 40, 30))
    165 print(datetime.time(11, 40, 30) > datetime.time(11, 40, 30))
    166 print(datetime.time(11, 40, 30) <= datetime.time(11, 40, 30))
    167 print(datetime.time(11, 40, 30) < datetime.time(11, 40, 30))
    168 print(datetime.time(11, 40, 30) != datetime.time(11, 40, 30))
    169 
    170 # 获取datetime.time对象属性
    171 print(getattr(datetime.time(11, 40, 30), 'hour'))
    172 print(getattr(datetime.time(11, 40, 30), 'minute'))
    173 print(getattr(datetime.time(11, 40, 30), 'second'))
    174 print(getattr(datetime.time(11, 40, 30), 'microsecond'))
    175 print(getattr(datetime.time(11, 40, 30), 'tzinfo'))
    176 print(getattr(datetime.time(11, 40, 30), 'fold'))
    177 print(datetime.time(11, 40, 30).hour)
    178 print(datetime.time(11, 40, 30).minute)
    179 print(datetime.time(11, 40, 30).second)
    180 print(datetime.time(11, 40, 30).microsecond)
    181 print(datetime.time(11, 40, 30).tzinfo)
    182 print(datetime.time(11, 40, 30).fold)
    183 
    184 # datetime.time对象格式化
    185 print(repr(datetime.time(11, 40, 30)))
    186 print(str(datetime.time(11, 40, 30)))
    187 print(datetime.time.strftime(datetime.time(11, 40, 30), '%H'))
    188 
    189 # 其他
    190 print(hash(datetime.time(11, 40, 30)))
    191 print(datetime.time.dst(datetime.time(11, 40, 30)))
    192 print(datetime.time.isoformat(datetime.time(11, 40, 30)))
    193 print(datetime.time.tzname(datetime.time(11, 40, 30)))
    194 print(datetime.time.utcoffset(datetime.time(11, 40, 30)))
    195 
    196 
    197 # 4、timedelta类
    198 """
    199 class timedelta(builtins.object)
    200      |  Difference between two datetime values.
    201          def __init__(self, days: float = ..., seconds: float = ..., microseconds: float = ...,
    202                  milliseconds: float = ..., minutes: float = ..., hours: float = ...,
    203                  weeks: float = ...) -> None: ...
    204 """
    205 
    206 # 创建datetime.timedelta类对象方法
    207 print(datetime.timedelta(weeks=0.5, days=1, hours=2, minutes=10, seconds=20, milliseconds=100, microseconds=10000))
    208 
    209 # datetime.timedelta对象的运算方法
    210 print(abs(datetime.timedelta(weeks=-1, days=1, hours=2, minutes=10, seconds=20, microseconds=10000)))
    211 print(datetime.timedelta(minutes=10) + datetime.timedelta(seconds=20))
    212 print(datetime.timedelta(minutes=0) != datetime.timedelta(minutes=1))
    213 print(divmod(datetime.timedelta(minutes=10), datetime.timedelta(minutes=3)))
    214 print(datetime.timedelta(minutes=0) == datetime.timedelta(minutes=1))
    215 print(datetime.timedelta(minutes=10) // datetime.timedelta(minutes=3))
    216 print(datetime.timedelta(minutes=0) >= datetime.timedelta(minutes=1))
    217 print(datetime.timedelta(minutes=0) > datetime.timedelta(minutes=1))
    218 print(datetime.timedelta(minutes=0) <= datetime.timedelta(minutes=1))
    219 print(datetime.timedelta(minutes=0) < datetime.timedelta(minutes=1))
    220 print(datetime.timedelta(minutes=10) % datetime.timedelta(minutes=3))
    221 print(datetime.timedelta(minutes=10) * 3)
    222 print(-datetime.timedelta(minutes=10))
    223 print(+datetime.timedelta(minutes=10))
    224 print(datetime.timedelta(minutes=10) / datetime.timedelta(minutes=3))  # float
    225 
    226 # datetime.timedelta对象的属性
    227 print(getattr(datetime.timedelta(minutes=10), 'days'))
    228 print(getattr(datetime.timedelta(minutes=10), 'seconds'))
    229 print(getattr(datetime.timedelta(minutes=10), 'microseconds'))
    230 print(datetime.timedelta(minutes=10).days)
    231 print(datetime.timedelta(minutes=10).seconds)
    232 print(datetime.timedelta(minutes=10).microseconds)
    233 
    234 # timedelta对象格式化
    235 print(repr(datetime.timedelta(minutes=10)))
    236 print(str(datetime.timedelta(minutes=10)))
    237 
    238 # 其他
    239 print(hash(datetime.timedelta(minutes=10)))
    240 print(datetime.timedelta(minutes=10).total_seconds())
    241 print(datetime.timedelta.total_seconds(datetime.timedelta(minutes=10)))
    242 
    243 
    244 # 5、timezone类
    245 """
    246 class timezone(tzinfo)
    247      |  Fixed offset from UTC implementation of tzinfo.
    248 """
    249 ti = datetime.timezone(offset=datetime.timedelta(hours=8), name='east8')  # 创建时区对象
    250 print(ti.tzname(datetime.datetime.now()))      # east8
    251 print(ti.utcoffset(datetime.datetime.now()))   # 8:00:00
    252 print(ti.dst(datetime.datetime.now()))         # 夏令时,返回None
    253 
    254 u = datetime.datetime(2018, 1, 19, 14, 7, tzinfo=ti)
    255 t = ti.fromutc(u)
    256 print(t)
  • 相关阅读:
    数组——遍历
    数组常用方法——汇总
    箭头函数
    overflow:auto产生的滚动条在安卓系统下能平滑滚动,而在ios下滚动不平滑
    浅谈过载保护
    tornado中使用torndb,连接数过高的问题
    如何开启并查看博客园MetaWeblog接口的xml-RPC协议访问地址
    aardio陷阱(转)
    aardio获取公网IP地址代码
    sql常用函数学习笔记整理
  • 原文地址:https://www.cnblogs.com/gundan/p/8316653.html
Copyright © 2020-2023  润新知