Python中时间格式转换的方法有哪些
时间:2023-05-10 06:54
1. 时间元组和时间戳的互化 2. 时间元组和字符串的互化 字符串与时间戳不能直接转化,要通过时间元组来完成,时间元组是中介. 转化图: 时间元组不能加减,要用datetime格式的时间才能加减.下面是字符串转为datetime后,进行时间加减运算. 以上就是Python中时间格式转换的方法有哪些的详细内容,更多请关注Gxl网其它相关文章!一 时间元组
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)
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
二 字符串与时间戳
三 时间的加减用法
import datetimestart = '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())# 如果不够一天,会输出0print((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