mysql timestamp 与python 的timestamp

1、

import time 

time.strftime('%Y%m%d %H:%M:%S')

 

但是mysql数据库的跟python的有些不同

【时间戳转格式化时间】

from_unixtime(createtime, '%Y%m%d %H:%i:%s')

【格式化时间转时间戳】

方法① 如果我们已有的时间已经是标准格式 2019-08-27 07:01:04

我们可以直接unix_timestamp('2019-08-27 07:01:04')==1566860464

如果我们的时间不是标准格式,比如createtime='20190827 07:01:04'

我们需要先转换为标准时间,使用str_to_date,就会转化为date,这个是标准格式

str_to_date('20190827 07:01:04','%Y%m%d %H:%i:%s') = 2019-08-27 07:01:04

然后再套一层unx_timestamp(str_to_date('20190827 07:01:04','%Y%m%d %H:%i:%s') )  就可以转化为时间戳了

 

2、time模块

time模块的标准形式是时间元祖,即

time.localtime()

time.struct_time(tm_year=2019, tm_mon=12, tm_mday=6, tm_hour=15, tm_min=33, tm_sec=47, tm_wday=4, tm_yday=340, tm_isdst=0)

或者

time.time()

 1575617657.7714365  标准时间戳

所以如果我们要获取年、月或者周几,或者几号,可以使用time.strptime('19710101','%Y%m%d'),获取时间元祖,然后再得到需要的部分

如果我们要变成时间戳,则使用time.mktime(时间元组),可以转化为时间戳

 

如果要转化日期格式,可以先将日期转为标准的时间元祖,再转为我们需要的格式  time.strftime('%Y-%m-%d',time.strptime('19710101','%Y%m%d'))

 

3、datetime模块,标准形式是一个datetime.datetime元祖

1获取当前时间:datetime.datetime.now().strftime('%Y%m%d')

2最重要的最用,是可以用来进行时间的相加减

比如,20190101减7天是几号?

获取标准datetime形式: date = datetime.datetime.strptime('20190101', '%Y%m%d')

获取时间间隔 delta = datetime.timedelta(days=7)

date-delta 得到 datetime.datetime(2018, 12, 25, 0, 0)

转化为字符串(date-delta).strftime('%Y%m%d')

posted @ 2019-12-06 15:22  yjy888  阅读(2698)  评论(0编辑  收藏  举报