python 时间常用方法封装-time,datetime

封装脚本:

#encoding=utf-8
import time
from datetime import timedelta,date

def date_time_chinese():
    print u"returns the current time string,format for YYYY年mm月dd日HH时MM分SS秒"
    return time.strftime("%Y年%m月%d日 %H时%M分%S秒".decode('utf-8').encode('gbk'),time.localtime())


def date_chinese():
    print u"returns the current time string, format for YYYY年mm月dd日"
    return time.strftime("%Y年%m月%d日".decode('utf-8').encode('gbk'),time.localtime())

def time_chinese():
    print u"returns the current time string,format for HH时 MM分 SS秒"
    return time.strftime("%H时%M分%S秒".decode('utf-8').encode('gbk'),time.localtime())

def date_time():
    print "returns the current time string, format for YYYY-mm-dd HH:MM:SS"
    return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())

def date_time_slash():
    print "returns the current time string,format for YYYY/mm/dd HH:MM:SS"
    return time.strftime("%Y/%m/%d %H:%M:%S",time.localtime())

def dates():
    print "returns the current time string,format for YYYY-mm-dd"
    return time.strftime("%Y-%m-%d",time.localtime())

def date_slash():
    print "returns the current time string,format for YYYY/mm/dd"
    return time.strftime("%Y/%m/%d",time.localtime())

def times():
    print "returns the current time string, format for HH:MM:SS"
    return time.strftime("%H:%M:%S",time.localtime())

def year():
    print "returns the current time string,format for year"
    return time.strftime("%Y",time.localtime())

def month():
    print "returns the current time string,format for month"
    return time.strftime("%m",time.localtime())

def day():
    print "returns the current time string,format for day"
    return time.strftime("%d",time.localtime())

def hour():
    print "returns the current time string, format for Hour"
    return time.strftime("%H",time.localtime())

def minute():
    print "returns the current time string,format for minute"
    return time.strftime("%M",time.localtime())

def seconds():
    print "return the current time string,format for seconds"
    return time.strftime("%S",time.localtime())

def str_to_tuple(stime):
    print "returns the string variable into time tuples"
    return time.strptime(stime,"%Y-%m-%d %H:%M:%S")

def add_date(day_num):
    today=date.today()
    print "returns the current date-%s and a time interval-%s" %(today,day_num)
    times=today+timedelta(days=day_num)
    return times

def sub_date(day_num):
    today=date.today()
    print "returns the current date-%s minus one time interval-%s" %(today,day_num)
    times=today-timedelta(days=day_num)
    return times


if __name__=='__main__':
    print date_time_chinese()
    print date_chinese()
    print time_chinese()
    print date_time()
    print date_time_slash()
    print dates()
    print date_slash()
    print times()
    print year()
    print month()
    print day()
    print hour()
    print minute()
    print seconds()
    time1=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    print str_to_tuple(time1)    
    print add_date(2)
    print sub_date(2)






结果:

D:\test>python test2.py
returns the current time string,format for YYYY年mm月dd日HH时MM分SS秒
2018年07月04日 22时19分32秒
returns the current time string, format for YYYY年mm月dd日
2018年07月04日
returns the current time string,format for HH时 MM分 SS秒
22时19分32秒
returns the current time string, format for YYYY-mm-dd HH:MM:SS
2018-07-04 22:19:32
returns the current time string,format for YYYY/mm/dd HH:MM:SS
2018/07/04 22:19:32
returns the current time string,format for YYYY-mm-dd
2018-07-04
returns the current time string,format for YYYY/mm/dd
2018/07/04
returns the current time string, format for HH:MM:SS
22:19:32
returns the current time string,format for year
2018
returns the current time string,format for month
07
returns the current time string,format for day
04
returns the current time string, format for Hour
22
returns the current time string,format for minute
19
return the current time string,format for seconds
32
returns the string variable into time tuples
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=4, tm_hour=22, tm_min=19, tm_sec=32, tm_wday=2, tm_yday=185, tm_isdst=-1)
returns the current date-2018-07-04 and a time interval-2
2018-07-06
returns the current date-2018-07-04 minus one time interval-2
2018-07-02



注意点:

涉及到打印中文时间字符串时,要注意一下字符编码,下边这段代码中的.decode('utf-8').encode('gbk')如果不加就会报下边的错,

原因是因为中文字符在文件中存的是utf-8编码格式,在运行时python处理器会试图用utf-8编码显示中文字符,但是中文字符需要用gbk编码才会正常显示,所以就会报错,这时可以用utf-8编码把中文字符转解码(decode)unicode编码格式,在编码(encode)成gbk格式就可以了,好多中文字符的问题都是这个方法来解决的,后续本人会整理一下解决中文字符显示的三部曲来供大家参考

def date_time_chinese():
    print u"returns the current time string,format for YYYY年mm月dd日HH时MM分SS秒"
    return time.strftime("%Y年%m月%d日 %H时%M分%S秒".decode('utf-8').encode('gbk'),time.localtime())

不加.decode('utf-8').encode('gbk')时报错如下:
D:\test>python test2.py
2018骞?7鏈?4鏃?22鏃?1鍒?1绉扵raceback (most recent call last):
  File "test2.py", line 83, in <module>
    date_time_chinese()
  File "test2.py", line 11, in date_time_chinese
    print time.strftime("%Y骞?m鏈?d鏃?%H鏃?M鍒?S绉?,time.localtime())
IOError: [Errno 0] Error







猜你喜欢

转载自www.cnblogs.com/xiaxiaoxu/p/9265739.html