全部博文(135)
分类: Python/Ruby
2011-08-11 14:13:42
Python下转换时间格式
将datetime类型转换成HTTP头所用的GMT时间格式的字符串(如’Thu, 19 Feb 2009 16:00:07 GMT’):
import datetime
Imoprt time
#从时间戳得到格式化的可读时间
time.strftime(GMT_FORMAT, time.gmtime(time.time())) or 0_timezone
time.strftime(GMT_FORMAT, time.localtime(time.time())) local_timezone
#格式化的可读时间得到从时间戳
T = time.strptime(Time, GMT_FORMAT)
其实就是使用strftime和strptime这2个方法相互转换。
另外还有一个数据类型 time.struct_time
>>> t='2011-08-11 12:23:23'
>>> time.strptime(t, '%Y-%m-%d %X')
time.struct_time(tm_year=2011, tm_mon=8, tm_mday=11, tm_hour=12, tm_min=23, tm_sec=23, tm_wday=3, tm_yday=223, tm_isdst=-1)
查看时区用
>>> time.timezone
-28800
上面的值是一个秒值,是当前时区和0时区相差的描述,-28800=-8*3600,即为东八区。
格式化参数
%a 本地的星期缩写
%A 本地的星期全称
%b 本地的月份缩写
%B 本地的月份全称
%c 本地的合适的日期和时间表示形式
%d 月份中的第几天,类型为decimal number(10进制数字),范围[01,31]
%f 微秒,类型为decimal number,范围[0,999999],Python 2.6新增
%H 小时(24进制),类型为decimal number,范围[00,23]
%I 小时(12进制),类型为decimal number,范围[01,12]
%j 一年中的第几天,类型为decimal number,范围[001,366]
%m 月份,类型为decimal number,范围[01,12]
%M 分钟,类型为decimal number,范围[00,59]
%p 本地的上午或下午的表示(AM或PM),只当设置为%I(12进制)时才有效
%S 秒钟,类型为decimal number,范围[00,61](60和61是为了处理闰秒)
%U 一年中的第几周(以星期日为一周的开始),类型为decimal number,范围[00,53]。在度过新年时,直到一周的全部7天都在该年中时,才计算为第0周。只当指定了年份才有效。
%w 星期,类型为decimal number,范围[0,6],0为星期日
%W 一年中的第几周(以星期一为一周的开始),类型为decimal number,范围[00,53]。在度过新年时,直到一周的全部7天都在该年中时,才计算为第0周。只当指定了年份才有效。
%x 本地的合适的日期表示形式
%X 本地的合适的时间表示形式
%y 去掉世纪的年份数,类型为decimal number,范围[00,99]
%Y 带有世纪的年份数,类型为decimal number
%Z 时区名字(不存在时区时为空)
%% 代表转义的"%"字符
Pasted from <>