Maison > Article > développement back-end > Quelles sont les méthodes de conversion du format d’heure en Python ?
1. Interconversion du tuple temporel et de l'horodatage
import time,datetime # 获取当前时间的时间元组 t = time.localtime() print(t) # 时间元组转时间戳 timestamp = time.mktime(t) print(timestamp) # time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=15, tm_sec=41, tm_wday=2, tm_yday=296, tm_isdst=0) # 1571843741.0 # 获取时间戳 ts = time.time() # 时间戳转时间元组 # 方法一 print('法一:',time.localtime(ts)) # 方法二 print('法二:',time.gmtime(ts)) # 两种方法的区别只有小时的输出不同,法一的小时是24小时制的,法二是12小时的 # time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0) # time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=15, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0)
2. Interconversion du tuple temporel et de la chaîne
import time # 字符串转时间元组 # 字符类型的时间 t1 = '2013-10-10 23:40:00' # 转为时间元组,时间元组本身没有直接的用处,但它可以输出时间的年月日时分秒等 # 注意这里的字符串除了%Y %m %d %H %M %S分别代表字符串中的年月日时分秒, # 这里的格式必须和字符串一模一样,由于字符串中间有空格,它也不能少 timeArray = time.strptime(t1, "%Y-%m-%d %H:%M:%S") print('并没有直接的用处:', timeArray) print('输出年:', timeArray.tm_year) print('输出月:', timeArray.tm_mon) print('输出日:', timeArray.tm_mday) print('输出时:', timeArray.tm_hour) print('输出分:', timeArray.tm_min) print('输出秒:', timeArray.tm_sec) # 当用%Y时表示的是年份的全称,当用%y时表示简称, # 月份和小时没有这种用法,它们只用小写,时分秒的貌似只用大写 t2 = '19/09/05 22/16' timeArray = time.strptime(t2, "%y/%m/%d %H/%M") print(timeArray) # 并没有直接的用处: time.struct_time(tm_year=2013, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1) # 输出年: 2013 # 输出月: 10 # 输出日: 10 # 输出时: 23 # 输出分: 40 # 输出秒: 0 # time.struct_time(tm_year=2019, tm_mon=9, tm_mday=5, tm_hour=22, tm_min=16, tm_sec=0, tm_wday=3, tm_yday=248, tm_isdst=-1) # 时间元组转字符串 ts = time.strftime("%Y/%m/%d %H:%M:%S", timeArray) print(ts) # 2019/09/05 22:16:00
La chaîne et les horodatages ne peuvent pas être convertis directement et doivent être complétés. via des tuples temporels, qui sont des intermédiaires.
Diagramme de conversion :
Les tuples temporels ne peuvent pas être ajoutés ou soustraits, le format datetime doit donc être utilisé. L'heure ne peut être ajoutée et soustraite. Ce qui suit est l'opération d'addition et de soustraction de temps après la conversion de la chaîne en datetime.
import datetime start = '2019-07-28 00:00:08' end = '2019-07-29 00:50:03' # 先将字符串转化为时间格式 a = datetime.datetime.strptime(start, "%Y-%m-%d %H:%M:%S") b = datetime.datetime.strptime(end, "%Y-%m-%d %H:%M:%S") print(a,b) # 只能直接计算秒和天,其它的不能 # seconds获得的秒只是时间差中的小时、分钟和秒部分的和,并没有包含时间差的天数 print((b-a).seconds) # total_seconds来获取准确的时间差,并将时间差转换为秒 print((b-a).total_seconds()) # 如果不够一天,会输出0 print((b-a).days) # 时间相加 c = a + datetime.timedelta(hours=5,seconds=68) d = a - datetime.timedelta(days=69,minutes=89) print(c,d) # 2019-07-28 00:00:08 2019-07-29 00:50:03 # 2995 # 89395.0 # 1 # 2019-07-28 05:01:16 2019-05-19 22:31:08
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!