| 
 | 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