您的位置:首页 > 其它

今天是今年的第几天

2015-09-20 22:59 429 查看
产品经理让我统计下从1月1号到现在的日均交易额,总交易额倒是很好统计,但是今天是今年的第几天呢?好吧学学这个知识点吧。

time模块

import time
>>> time.gmtime()  # utc时间
time.struct_time(tm_year=2015, tm_mon=9, tm_mday=20, tm_hour=13, tm_min=6, tm_se
c=33, tm_wday=6, tm_yday=263, tm_isdst=0)
>>> time.localtime()  # 本地时间
time.struct_time(tm_year=2015, tm_mon=9, tm_mday=20, tm_hour=21, tm_min=6, tm_se
c=25, tm_wday=6, tm_yday=263, tm_isdst=0)
>>> time.time()  # 当前时间戳,从1970-1-1以来的秒数
1442754566.201
>>> time.mktime(time.localtime())  # 时间转成时间戳
1442754240.0


看看它的这些属性吧

tm_year=2015  # 年
tm_mon=9  # 月
tm_mday=20  # 日
tm_hour=21  # 时
tm_min=6  # 分
tm_sec=25  # 秒
tm_wday=6  # 星期
tm_yday=263  # 一年的第几天
tm_isdst=0  # 夏令时当前是否生效

# 属性可以这样使用
>>> time.localtime().tm_year
2015

time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())  # 时间转字符串格式
'2015-09-20 13:33:59'
time.strptime('2015-09-20 13:33:59', '%Y-%m-%d %H:%M:%S')  # 字符串转时间
time.struct_time(tm_year=2015, tm_mon=9, tm_mday=20, tm_hour=13, tm_min=33, tm_s
ec=59, tm_wday=6, tm_yday=263, tm_isdst=-1)


datetime模块

from datetime import datetime, date, time
date.year
date.month
date.day
date.today()
date.weekday()
date.strftime(fmt)

time.hour
time.minute
time.second
time.microsecond
time.strftime(fmt)

# 平时使用最多的
datetime.today()  # 今天时间
datetime.now()  # 本地时间
datetime.utcnow()  # utc时间(比中国时间晚8小时,中国处东8区)
datetime.strptime(date_string, format)  # 字符串转时间
datetime.strftime(fmt)  # 时间转字符串
datetime.date()
datetime.time()
datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])
datetime.timetuple()
# time.struct_time(tm_year=2015, tm_mon=9, tm_mday=20, tm_hour=18, tm_min=36, tm_s
ec=5, tm_wday=6, tm_yday=263, tm_isdst=-1)
datetime.utctimetuple()
datetime.weekday()
datetime.ctime()
# 'Sun Sep 20 18:36:05 2015'


replace 与 timedelta比较

import datetime
now = datetime.date(2015,9,20)
tomorrow = now.replace(day = 19)
# datetime.date(2015, 9, 19)

d = datetime.timedelta(days=1)
tomorrow = now - d
# datetime.date(2015, 9, 19)


格式字符

%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])

%U 周在当年的周数当年的第几周),星期天作为周的第一天

%w 今天在这周的天数,范围为[0, 6],6表示星期天

%W 周在当年的周数(是当年的第几周),星期一作为周的第一天

%x 日期字符串(如:04/07/10)

%X 时间字符串(如:10:43:39)

%y 2个数字表示的年份

%Y 4个数字表示的年份

%z 与utc时间的间隔 (如果是本地时间,返回空字符串)

%Z 时区名称(如果是本地时间,返回空字符串)

所以到目前,我们有几个方法来解决这个问题

improt time
>>> time.localtime().tm_yday
263

from datetime import datetime
>>> datetime.now().timetuple().tm_yday
263
>>> datetime.now().strftime('%j')
'263'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: