今天看网上一个说中文日期的问题. 自己试了下.
#-*- coding: gb2312 -*-
import datetime, time
#now = time.strftime('%Y年%m月%d日 %H时%M分%S秒', time.localtime()).decode('utf-8')
now = time.strftime('%Y年%m月%d日 %H时%M分%S秒', time.localtime())
print now
now = time.strptime(now, '%Y年%m月%d日 %H时%M分%S秒')
print now
print time.strftime('%Y-%m-%d %H:%M:%S', now)
结果如下:
2015年01月21日 14时22分12秒 time.struct_time(tm_year=2015, tm_mon=1, tm_mday=21, tm_hour=14, tm_min=22, tm_sec=12, tm_wday=2, tm_yday=21, tm_isdst=-1) 2015-01-21 14:22:12
日期 到 字符串:
>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) '2015-01-21 14:32:31' >>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") '2015-01-21 14:33:38'
字符串 到 时间
>>> time.strptime("2015-1-2 11:22:33", '%Y-%m-%d %H:%M:%S') time.struct_time(tm_year=2015, tm_mon=1, tm_mday=2, tm_hour=11, tm_min=22, tm_sec=33, tm_wday=4, tm_yday=2, tm_isdst=-1) >>> datetime.datetime.strptime("2015-1-2 11:22:33", '%Y-%m-%d %H:%M:%S') datetime.datetime(2015, 1, 2, 11, 22, 33)
unix时间戳 到 时间
>>> time.localtime(1234567890) time.struct_time(tm_year=2009, tm_mon=2, tm_mday=14, tm_hour=7, tm_min=31, tm_sec=30, tm_wday=5, tm_yday=45, tm_isdst=0) >>> datetime.date.fromtimestamp(1234567890) datetime.date(2009, 2, 14)
时间 到 unix时间戳
>>> int(time.time()) 1421822833 >>> time.mktime(datetime.date(2015,1,21).timetuple()) 1421769600.0 >>> time.mktime(time.strptime("2015-1-21", "%Y-%m-%d")) 1421769600.0
日期加减. 日期要格式化为时间元组才可以加减.
>>> datetime.datetime.now() #今天 datetime.datetime(2015, 1, 21, 14, 53, 43, 321906) >>> (datetime.datetime.now() - datetime.timedelta(days=3)).day #3天前 18 #timedelta支持的单位 days, seconds, microseconds, milliseconds, minutes, hours, weeks >>> (datetime.datetime.now() - datetime.timedelta(weeks=1)).day 14
转载于:https://blog.51cto.com/abian/1606617