在程序开发当中,都知道时间和字符串str是经常需要互相转换的---比方说对数据库进行操作........那么学过Java的肯定知道用SimpleDateFormat可以转,当然Python也是可以滴.

1.先来介绍Python中格式化日期的常用标识

    %Y:完整年份(比如2017、2016)    %y:简写年份(只显示后面两位,比如17、16)   %m:月份     %d:天数    %a:星期简写        %A:星期全拼   

    %H:24小时制  %I:12小时制    %M:分钟    %S:秒数  

2.时间转换为字符串(str):

    假设我的本地当前时间为 2016/02/21 23:12:22

 对时间的操作的用到time模块

      import time:导入模块

        content = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())   ==== > 2016-02-21 23:12:22

 解释上面代码,其中strftime()是time模块的一个小小小小函数,其中需要两个参数,第一个参数是自己设定的格式化日期标识规则,第二个参数是需要9位数的元组,  为啥需要9位?  先来瞧time.localtime()是啥东东??   注意:如果time.localtime()可写可不写,不写也会取本地当前时间。。。。。。。

      咱们打印print time.localtime() ====>  time.struct_time(tm_year=2016, tm_mon=2, tm_mday=21, tm_hour=23, tm_min=12, tm_sec=22, tm_wday=0, tm_yday=110, tm_isdst=0) :

      自己数数--刚好9位数.依次为年,月,日,时,分,秒,星期,天数(今年第一天到今天的天数),夏令时   ----->所以说第二个参数为啥要9位了吧。

    当然,咱们不用当前时间转换,自己设置个时间转化字符串:

          time.strftime("%Y-%m-%d %H:%M:%S",(2014,12,11,22,16,56,0,0,0))  ====>'2014-12-11 22:16:56'

    注意到没,其实后面三个0其实可以随便写滴,不过前提你不需要后面的参数,由于我只显示了年月日时分秒,所以后面我可以随便输,但是必须得有,没9位会报错滴!!

3.字符串转换为时间(得还需要引入一个模块datetime)

    首先指定str:  strTime = "2016-03-26"

  第一步: t = time.strptime(strTime,"%Y-%m-%d")===>(该函数返回一个元组如果只有年月日则返回长度为3的元组)

  第二步: x,y,z = t[:] ===>依次将三个值取出来 ----->x = 2016   y = 03  z = 26

  第三步: times = datetime.datetime(x,y,z)    ------>  2016-03-26 00:00:00

  注意:指定得时间字符串格式必须得和strptime函数的第二个参数时间格式化规则的一致才行,不然会报错:

        ValueError: time data '2016-03-26' does not match format '%Y/%m/%d'

  什么意思呢,比如 time.strptime("2016/09/11","%Y/%m/%d")  或者就是time.strptime("2015-12-12","%Y-%m-%d") 格式的一致才行滴........