|  | 
|  | 1 | + | 
|  | 2 | +# imports | 
|  | 3 | +>>> from datetime import date, datetime, timedelta, timezone | 
|  | 4 | +>>> import time | 
|  | 5 | +>>> import calendar as cal | 
|  | 6 | +>>> from zoneinfo import ZoneInfo | 
|  | 7 | + | 
|  | 8 | + | 
|  | 9 | +# date | 
|  | 10 | +>>> today = date.today() | 
|  | 11 | +>>> today | 
|  | 12 | +datetime.date(2021, 3, 28) | 
|  | 13 | +>>> today.ctime() | 
|  | 14 | +'Sun Mar 28 00:00:00 2021' | 
|  | 15 | +>>> today.isoformat() | 
|  | 16 | +'2021-03-28' | 
|  | 17 | +>>> today.weekday() | 
|  | 18 | +6 | 
|  | 19 | +>>> cal.day_name[today.weekday()] | 
|  | 20 | +'Sunday' | 
|  | 21 | +>>> today.day, today.month, today.year | 
|  | 22 | +(28, 3, 2021) | 
|  | 23 | +>>> today.timetuple() | 
|  | 24 | +time.struct_time( | 
|  | 25 | +    tm_year=2021, tm_mon=3, tm_mday=28, | 
|  | 26 | +    tm_hour=0, tm_min=0, tm_sec=0, | 
|  | 27 | +    tm_wday=6, tm_yday=87, tm_isdst=-1 | 
|  | 28 | +) | 
|  | 29 | + | 
|  | 30 | +# time | 
|  | 31 | +>>> time.ctime() | 
|  | 32 | +'Sun Mar 28 15:23:17 2021' | 
|  | 33 | +>>> time.daylight | 
|  | 34 | +1 | 
|  | 35 | +>>> time.gmtime() | 
|  | 36 | +time.struct_time( | 
|  | 37 | +    tm_year=2021, tm_mon=3, tm_mday=28, | 
|  | 38 | +    tm_hour=14, tm_min=23, tm_sec=34, | 
|  | 39 | +    tm_wday=6, tm_yday=87, tm_isdst=0 | 
|  | 40 | +) | 
|  | 41 | +>>> time.gmtime(0) | 
|  | 42 | +time.struct_time( | 
|  | 43 | +    tm_year=1970, tm_mon=1, tm_mday=1, | 
|  | 44 | +    tm_hour=0, tm_min=0, tm_sec=0, | 
|  | 45 | +    tm_wday=3, tm_yday=1, tm_isdst=0 | 
|  | 46 | +) | 
|  | 47 | +>>> time.localtime() | 
|  | 48 | +time.struct_time( | 
|  | 49 | +    tm_year=2021, tm_mon=3, tm_mday=28, | 
|  | 50 | +    tm_hour=15, tm_min=23, tm_sec=50, | 
|  | 51 | +    tm_wday=6, tm_yday=87, tm_isdst=1 | 
|  | 52 | +) | 
|  | 53 | +>>> time.time() | 
|  | 54 | +1616941458.149149 | 
|  | 55 | + | 
|  | 56 | + | 
|  | 57 | +# datetime, timezones and tiemdeltas | 
|  | 58 | +>>> now = datetime.now() | 
|  | 59 | +>>> utcnow = datetime.utcnow() | 
|  | 60 | +>>> now | 
|  | 61 | +datetime.datetime(2021, 3, 28, 15, 25, 16, 258274) | 
|  | 62 | +>>> utcnow | 
|  | 63 | +datetime.datetime(2021, 3, 28, 14, 25, 22, 918195) | 
|  | 64 | +>>> now.date() | 
|  | 65 | +datetime.date(2021, 3, 28) | 
|  | 66 | +>>> now.day, now.month, now.year | 
|  | 67 | +(28, 3, 2021) | 
|  | 68 | +>>> now.date() == date.today() | 
|  | 69 | +True | 
|  | 70 | +>>> now.time() | 
|  | 71 | +datetime.time(15, 25, 16, 258274) | 
|  | 72 | +>>> now.hour, now.minute, now.second, now.microsecond | 
|  | 73 | +(15, 25, 16, 258274) | 
|  | 74 | +>>> now.ctime() | 
|  | 75 | +'Sun Mar 28 15:25:16 2021' | 
|  | 76 | +>>> now.isoformat() | 
|  | 77 | +'2021-03-28T15:25:16.258274' | 
|  | 78 | +>>> now.timetuple() | 
|  | 79 | +time.struct_time( | 
|  | 80 | +    tm_year=2021, tm_mon=3, tm_mday=28, | 
|  | 81 | +    tm_hour=15, tm_min=25, tm_sec=16, | 
|  | 82 | +    tm_wday=6, tm_yday=87, tm_isdst=-1 | 
|  | 83 | +) | 
|  | 84 | +>>> now.tzinfo | 
|  | 85 | +>>> utcnow.tzinfo | 
|  | 86 | +>>> now.weekday() | 
|  | 87 | +6 | 
|  | 88 | +>>> f_bday = datetime( | 
|  | 89 | +    1975, 12, 29, 12, 50, tzinfo=ZoneInfo('Europe/Rome') | 
|  | 90 | +) | 
|  | 91 | +>>> h_bday = datetime( | 
|  | 92 | +    1981, 10, 7, 15, 30, 50, tzinfo=timezone(timedelta(hours=2)) | 
|  | 93 | +) | 
|  | 94 | +>>> diff = h_bday - f_bday | 
|  | 95 | +>>> type(diff) | 
|  | 96 | +<class 'datetime.timedelta'> | 
|  | 97 | +>>> diff.days | 
|  | 98 | +2109 | 
|  | 99 | +>>> diff.total_seconds() | 
|  | 100 | +182223650.0 | 
|  | 101 | +>>> today + timedelta(days=49) | 
|  | 102 | +datetime.date(2021, 5, 16) | 
|  | 103 | +>>> now + timedelta(weeks=7) | 
|  | 104 | +datetime.datetime(2021, 5, 16, 15, 25, 16, 258274) | 
|  | 105 | + | 
|  | 106 | + | 
|  | 107 | +# parsing (stdlib) | 
|  | 108 | +>>> datetime.fromisoformat('1977-11-24T19:30:13+01:00') | 
|  | 109 | +datetime.datetime( | 
|  | 110 | +    1977, 11, 24, 19, 30, 13, | 
|  | 111 | +    tzinfo=datetime.timezone(datetime.timedelta(seconds=3600)) | 
|  | 112 | +) | 
|  | 113 | + | 
|  | 114 | +>>> datetime.fromtimestamp(time.time()) | 
|  | 115 | +datetime.datetime(2021, 3, 28, 15, 42, 2, 142696) | 
|  | 116 | + | 
|  | 117 | +>>> datetime.now() | 
|  | 118 | +datetime.datetime(2021, 3, 28, 15, 42, 1, 120094) | 
|  | 119 | + | 
|  | 120 | + | 
|  | 121 | +# arrow small demo | 
|  | 122 | +>>> import arrow | 
|  | 123 | +>>> arrow.utcnow() | 
|  | 124 | +<Arrow [2021-03-28T14:43:20.017213+00:00]> | 
|  | 125 | +>>> arrow.now() | 
|  | 126 | +<Arrow [2021-03-28T15:43:39.370099+01:00]> | 
|  | 127 | + | 
|  | 128 | +>>> local = arrow.now('Europe/Rome') | 
|  | 129 | +>>> local | 
|  | 130 | +<Arrow [2021-03-28T16:59:14.093960+02:00]> | 
|  | 131 | +>>> local.to('utc') | 
|  | 132 | +<Arrow [2021-03-28T14:59:14.093960+00:00]> | 
|  | 133 | +>>> local.to('Europe/Moscow') | 
|  | 134 | +<Arrow [2021-03-28T17:59:14.093960+03:00]> | 
|  | 135 | +>>> local.to('Asia/Tokyo') | 
|  | 136 | +<Arrow [2021-03-28T23:59:14.093960+09:00]> | 
|  | 137 | +>>> local.datetime | 
|  | 138 | +datetime.datetime( | 
|  | 139 | +    2021, 3, 28, 16, 59, 14, 93960, | 
|  | 140 | +    tzinfo=tzfile('/usr/share/zoneinfo/Europe/Rome') | 
|  | 141 | +) | 
|  | 142 | +>>> local.isoformat() | 
|  | 143 | +'2021-03-28T16:59:14.093960+02:00' | 
0 commit comments