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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM