- 时间戳转化为格式化日期,形如:2021-11-09 09:46:48
import time import datatime timestamp = 163642240800 # 如果你的时间是在字典或者json中取出的要进行转化,因为时间戳必须是整形 time_local = time.localtime(timestamp / 1000) # 转化成localtime timeformat = time.strftime("%Y-%m-%d %H:%M:%S", time_local) # 转换成新的时间格式(精确到秒) print(timeformat) # 2021-11-09 09:46:48 格式化之后的日期 # 如果你想精确到毫秒,接下来的步骤就可以了 d = datetime.datetime.fromtimestamp(timestamp / 1000) str1 = d.strftime("%Y-%m-%d %H:%M:%S.%f") # 精确到毫秒 print(str1) #2021-11-09 09:46:48.000000
- 格式化日期转化为时间戳
这里呢其实还有一个补充知识,就是说对于上面提到的timeArray,为什么打印出来是括号中的一堆东西呢? 其实呢这个也是非常简单的,在python的基础中我们知道有个时间模块time,tm_year就是代表年份;tm_mon代表月份,值为1-12;tm_mday代表日,可选1-31;time_hour代表小时,可选0-23;tm_min为分钟,0-59;tm_sec为秒,0-60;tm_wday代表周几,0-6(其中0代表周一,可能和我们理解的有出入记住就好),最后一个tm_isdst已经很少提到了,可以了解一下。 ------此图片是转载于csdn# 字符类型的时间 from datetime import time import time tss1 = '2022-12-23 21:19:03' # 时间为字符串形式 # 转为时间数组 timeArray = time.strptime(tss1, "%Y-%m-%d %H:%M:%S") # 第二个参数要根据你的时间来确定它的格式 print(timeArray) # time.struct_time(tm_year=2022, tm_mon=12, tm_mday=23, tm_hour=21, tm_min=19, tm_sec=3, tm_wday=4, tm_yday=357, tm_isdst=-1) # timeArray可以调用tm_year等 print(timeArray.tm_year) print(timeArray.tm_yday) # 转为时间戳 timeStamp = int(time.mktime(timeArray)) print(timeStamp)
- python获取指定日期的前N天日期和后N天日期
这时候可能需要用到一个模块timedelta,这个代表两个时间之间的时间差。
from datetime import date, datetime, timedelta # 有的模块可能需要分着导入,自己根据版本定 day = date.today() # 获取当前的时间 print(day) # 2022-12-23 now = datetime.now() # 读取的时间是系统的本地时间 print(now) # 2022-12-23 15:32:25.584558 精确到了时分秒,毫秒 delta = timedelta(days=5) # 这里就是代表时间差,又叫做偏移量,也就是你想要找的前几天或者后几天 n_days_after = now + delta # 将现在的时间和偏移量相加就是将来的时间 n_days_forward = now - delta # 现在的时间减去偏移量就是之前的时间 print(("当前日期:{}").format(day)) # 这里用的是字符串的一种格式化方式,可以将format中的内容填充到{}里面 print("向后推迟5天的日期:{}".format(n_days_after.strftime('%Y-%m-%d'))) # 2022-12-28 这里是精确到了日,没有精确到秒 print("向前推5天的日期:{}".format(n_days_forward.strftime('%Y-%m-%d'))) # 2022-12-18 和上面一样
python中时间戳和格式化日期的相互转化
点赞
收藏