来来回回转换,烦死我了,这把一网打尽,看哪个还说不会。
此种数据常见于获取当前日期,或者从 MySQL
数据库库中读取到的事件对象,
使用时,需要先导入 datetime
模块
import datetime
或者
from datetime import datetime
获取当前日期
>>> now = datetime.now()
>>> now
>>> datetime.datetime(2019, 11, 18, 13, 48, 44, 462030)
此种数据被称作 字符串 类型时间,常见于经过python处理的存入的Redis
数据库中
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
获取方法
>>> import time
>>> time.time()
>>> 1574056790.3225868
datetime
转成字符串>>> from datetime import datetime
>>> time1 = datetime.now() # datetime.datetime(2019, 11, 18, 14, 7, 28, 58389)
>>> res_time1 = time1.strftime("%Y-%m-%d") # '2019-11-18'
>>> res_time2 = time1.strftime("%Y-%m-%d %H:%M:%S") # '2019-11-18 14:07:28'
>>> from datetime import datetime
>>> import time
>>> time2 = time.time() # 1574057459.076734
>>> time3 = int(time2) # 1574057459
>>> res_time3 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time3)) # '2019-11-18 14:10:59'
需要先转换成 datetime
格式,然后再进行转换
>>> from datetime import datetime
>>> import time
>>> time4 = '2019-11-18 14:10:59'
>>> time5 = time.strptime(time4, "%Y-%m-%d %H:%M:%S") # time.struct_time(tm_year=2019, tm_mon=11, tm_mday=18, tm_hour=14, tm_min=10, tm_sec=59, tm_wday=0, tm_yday=322, tm_isdst=-1)
>>> res_time4 = time.mktime(time5) # 1574057459.0
datetim
转成 时间戳>>> from datetime import datetime
>>> import time
>>> time6 = datetime.now() # datetime.datetime(2019, 11, 18, 14, 24, 50, 483303)
>>> time7 = datetime.timetuple(time6) # time.struct_time(tm_year=2019, tm_mon=11, tm_mday=18, tm_hour=14, tm_min=24, tm_sec=50, tm_wday=0, tm_yday=322, tm_isdst=-1)
>>> res_time5 = time.mktime(time7) # 1574058290.0
datetime
>>> from datetime import datetime
>>> import time
>>> time8 = '2019-11-18 14:10:59'
>>> res_time6 = datetime.strptime(time8, "%Y-%m-%d %H:%M:%S") # datetime.datetime(2019, 11, 18, 14, 10, 59
datetime
>>> from datetime import datetime
>>> import time
>>> time9 = time.time() # 1574057459.076734
>>> time10 = int(time9) # 1574057459
>>> dateArray = datetime.datetime.utcfromtimestamp(timeStamp) # datetime.datetime(2013, 10, 10, 15, 40)
>>> import time
>>> import datetime
>>> threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 3))
>>> threeDayAgo
>>> datetime.datetime(2019, 11, 15, 14, 44, 16, 195267)
%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: 时区名称(如果是本地时间,返回空字符串)
%%: %% => %