|
| 1 | +# code02 使用datetime |
| 2 | +"""" |
| 3 | +方便的格式化显示日期 |
| 4 | +日期进行算术运算 |
| 5 | +""" |
| 6 | + |
| 7 | +from datetime import date, datetime, timedelta |
| 8 | +import time |
| 9 | + |
| 10 | + |
| 11 | +def use_datetime(): |
| 12 | + datetime_now = datetime.now() # 返回datetime.datetime类对象 |
| 13 | + print(type(datetime_now)) |
| 14 | + print(datetime_now.year, datetime_now.month, datetime_now.day, |
| 15 | + datetime_now.hour, datetime_now.minute, datetime_now.second) |
| 16 | + # 设置时间 |
| 17 | + dt = datetime(2015, 10, 21, 15, 29, 0) |
| 18 | + print(dt.year, dt.month, dt.day, dt.hour, dt.minute,dt.second) |
| 19 | + |
| 20 | + |
| 21 | +# 时间转换 |
| 22 | +def transfer_time(): |
| 23 | + # 时间戳转换 |
| 24 | + dt = datetime.fromtimestamp(1000000) |
| 25 | + print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) |
| 26 | + dt = datetime.fromtimestamp(time.time()) |
| 27 | + print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) |
| 28 | + |
| 29 | + |
| 30 | +# 时间比较 |
| 31 | +def compare_time(): |
| 32 | + dt01 = datetime(2015, 10, 31, 0, 0, 0) |
| 33 | + dt02 = datetime(2016, 1, 1, 0, 0, 0) |
| 34 | + dt03 = datetime(2015, 10, 31, 0, 0, 0) |
| 35 | + if dt01 == dt03: |
| 36 | + print("same time") |
| 37 | + if dt01 < dt02: |
| 38 | + print("dt02 bigger") |
| 39 | + if dt02 != dt03: |
| 40 | + print("not same time") |
| 41 | + |
| 42 | + |
| 43 | +# 一段时间表时 |
| 44 | +def use_duration(): |
| 45 | + delta = timedelta(days=11, hours=10, minutes=9, seconds=8) |
| 46 | + print("delta.days", "delta.seconds", "delta.microseconds") |
| 47 | + print(delta.days, delta.seconds, delta.microseconds) |
| 48 | + print("total second", delta.total_seconds()) |
| 49 | + print(str(delta)) |
| 50 | + |
| 51 | + |
| 52 | +# 时间运算 |
| 53 | +def time_calc(): |
| 54 | + dt = datetime.now() |
| 55 | + thousandDays = timedelta(days=1000) |
| 56 | + dt = dt + thousandDays |
| 57 | + print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) |
| 58 | + # 时间运算 |
| 59 | + dt01 = datetime(2015, 10, 21, 16, 29, 0) |
| 60 | + thirty_years = timedelta(days=365*30) |
| 61 | + # 30年后 |
| 62 | + dt01 = dt01 - thirty_years |
| 63 | + print(dt01.year, dt01.month, dt01.day, dt01.hour) |
| 64 | + # 60年后 |
| 65 | + dt01 = dt01 - (2*thirty_years) |
| 66 | + print(dt01.year, dt01.month, dt01.day, dt01.hour) |
| 67 | + |
| 68 | + |
| 69 | +# 暂停直至特定日期 |
| 70 | +def pause(): |
| 71 | + dt = datetime(2022, 1, 1, 0, 0, 0) |
| 72 | + while datetime.now() < dt: |
| 73 | + time.sleep(1) |
| 74 | + |
| 75 | + |
| 76 | +# 格式化datetime |
| 77 | +def format_datetime(): |
| 78 | + dt01 = datetime(2015, 10, 21, 16, 29, 0) |
| 79 | + result01 = dt01.strftime('%Y/%m/%d %H:%M:%S') |
| 80 | + print(result01) |
| 81 | + result02 = dt01.strftime('%I:%M %p') |
| 82 | + print(result02) |
| 83 | + result03 = dt01.strftime("%B of %y") |
| 84 | + print(result03) |
| 85 | + print('-------------------------------------') |
| 86 | + dt = datetime.strptime('October 21, 2015', '%B %d, %Y') |
| 87 | + print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) |
| 88 | + dt = datetime.strptime('2015/10/21 16:29:00', '%Y/%m/%d %H:%M:%S') |
| 89 | + print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) |
| 90 | + dt = datetime.strptime("October of '15", "%B of '%y") |
| 91 | + print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) |
| 92 | + dt = datetime.strptime("October of '63", "%B of '%y") |
| 93 | + print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) |
| 94 | + |
| 95 | + |
| 96 | +def use_date(): |
| 97 | + now = date.today() |
| 98 | + print(type(now), now) |
| 99 | + # 格式化 |
| 100 | + result = now.strftime('%m-%d-%y. %d %b %Y is a %A on the %d day of %B.') |
| 101 | + print(result) |
| 102 | + birthday = date(1964, 7, 31) |
| 103 | + age = now - birthday |
| 104 | + print(age.days) |
| 105 | + |
| 106 | + |
| 107 | +if __name__ == '__main__': |
| 108 | + # test_datetime() |
| 109 | + # use_datetime() |
| 110 | + # transfer_time() |
| 111 | + # compare_time() |
| 112 | + # use_duration() |
| 113 | + # time_calc() |
| 114 | + format_datetime() |
0 commit comments