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)