Python datetime time 等时间 日期 之间的计算和相互转化
from datetime import datetime, date, timedelta, timezone from time import time, ctime, localtime, strftime, strptime, mktime ''' %Y %m %d %H %M %S 年月日时分秒 %A %a 全写星期 简写星期 ''' # 生成当前时区日期事件字符串 tct = ctime() print(tct,type(tct)) print(tct.strip(),type(tct.strip())) # 两个获取时间的方法 print(time(),datetime.now()) print('--------------------------') # 获取日期对象并格式化输出 print(datetime.now().strftime('%Y-%m-%d %Z %H:%M:%S %A %x %X 星期 %w')) # 获取可计算的日期差值对象 print(timedelta(1)) # 日期字符串转化为datetime对象 datetime_str = '2019-08-12 12/23/50' print(datetime.strptime(datetime_str, '%Y-%m-%d %H/%M/%S')) dt = datetime.now() print(timedelta(2)) # timetuple 方式获取日期对象 dto = datetime(19,4,12,23,45,10) print(dto) print(dto.timetuple()) print('=============================') # 日期计算,根据日期时间差值计算日期 today = datetime.now() print(today) days = timedelta(3) afterday = today+days print(afterday) day_minute = timedelta(days=3,seconds=3600) after_day = today+day_minute print(after_day) print('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') # 获取UTC时间并进行时区换算 utcdt = datetime.utcnow() print(utcdt) print(utcdt.astimezone(timezone(timedelta(hours=8)))) print(datetime.now().strftime('%Y>%m>%d %H:%M:%S')) print(datetime.now()-timedelta(hours=8)) # 秒数换日期时间 n = time() d = timedelta(seconds=n) print(localtime(n)) print(strftime('%Y/%m/%d %H:%M', localtime(n))) # 获取当前日星期几 0-6 周一-周日 print(datetime.weekday(datetime.now())) # 日期格式字符串换算秒数 st = strptime('2019.03.24', '%Y.%m.%d') print(st) print(mktime(st)) ''' Sun Apr 28 15:12:38 2019 <class 'str'> Sun Apr 28 15:12:38 2019 <class 'str'> 1556435558.4862983 2019-04-28 15:12:38.486300 -------------------------- 2019-04-28 15:12:38 Sunday 04/28/19 15:12:38 星期 0 1 day, 0:00:00 2019-08-12 12:23:50 2 days, 0:00:00 0019-04-12 23:45:10 time.struct_time(tm_year=19, tm_mon=4, tm_mday=12, tm_hour=23, tm_min=45, tm_sec=10, tm_wday=4, tm_yday=102, tm_isdst=-1) ============================= 2019-04-28 15:12:38.487751 2019-05-01 15:12:38.487751 2019-05-01 16:12:38.487751 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2019-04-28 07:12:38.487764 2019-04-28 07:12:38.487764+08:00 2019>04>28 15:12:38 2019-04-28 07:12:38.487788 time.struct_time(tm_year=2019, tm_mon=4, tm_mday=28, tm_hour=15, tm_min=12, tm_sec=38, tm_wday=6, tm_yday=118, tm_isdst=0) 2019/04/28 15:12 6 time.struct_time(tm_year=2019, tm_mon=3, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=83, tm_isdst=-1) 1553356800.0 ''' ''' %a 星期的简写。如 星期三为Web %A 星期的全写。如 星期三为Wednesday %b 月份的简写。如4月份为Apr %B 月份的全写。如4月份为April %c: 日期时间的字符串表示。(如: 04/07/10 10:43:39) %d: 日在这个月中的天数(是这个月的第几天) %f: 微秒(范围[0,999999]) %H: 小时(24小时制,[0, 23]) %I: 小时(12小时制,[0, 11]) %j: 日在年中的天数 [001,366](是当年的第几天) %m: 月份([01,12]) %M: 分钟([00,59]) %p: AM或者PM %S: 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~) %U: 周在当年的周数当年的第几周),星期天作为周的第一天 %w: 今天在这周的天数,范围为[0, 6],6表示星期天 %W: 周在当年的周数(是当年的第几周),星期一作为周的第一天 %x: 日期字符串(如:04/07/10) %X: 时间字符串(如:10:43:39) %y: 2个数字表示的年份 %Y: 4个数字表示的年份 %z: 与utc时间的间隔 (如果是本地时间,返回空字符串) %Z: 时区名称(如果是本地时间,返回空字符串) '''