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)
原文地址:https://www.cnblogs.com/gundan/p/8316653.html