basic time

from datetime import date,datetime,timedelta

datetime类型

1
2
3
4
5
d = datetime.now() datetime.datetime(2017, 6, 2, 17, 22, 5, 470694)
datetime(2017,2,3) datetime.datetime(2017, 2, 3, 0, 0)
str(d)[:19]
d.year d.month (属性,都是int类型)
current_day,month_days = calendar.monthrange(2017, 2) (获取某年某月的 当前天数 和 此月共有天)

date类型

datetime.datetime 会精确到 %H%M%S 而datetime.date 不需要

1
2
3
4
5
6
7
8
9
10
date_today = date.today()
start_date = date(2017,2,6).replace(day=1)
# 对应月份第一天的日期 datetime.date(2017, 2, 1) 如果输入是一个 datetime 实例,那么你得到的就是一个 datetime 实例
end_date = start_date + timedelta(days=month_days-1)
# 第一种获得当月月底的日期 datetime.date(2017, 2, 28)date类型和datetime类型 都可以通过 timedelta 进行前/后几天的计算
# 加月份时
from dateutil.relativedelta import relativedelta
six_months = date.today() + relativedelta(months=+6) datetime.date(2017, 12, 27)
six_months = datetime.now() + relativedelta(months=+6) datetime.datetime(2017, 12, 27, 16, 2, 5, 260990)

时间戳类型 timestamp

1
time.time() 1483756148.2785556 type:float

time tuple类型

1
time.localtime() time.struct_time(tm_year=2017, tm_mon=1, tm_mday=7, tm_hour=11, tm_min=0, t_m_sec=54, tm_wday=5, tm_yday=7, tm_isdst=0)

转换关系

datetime.datetime –> str

1
2
s = d.strftime('%Y-%m-%d %H:%M:%S.%f') (2017-01-07 10:16:12.962917)
s = date_today.strftime('%Y-%m-%d') (2017-01-07)

datetime.datetime –> time tuple

1
d.timetuple()

str –> datetime.datetime

1
datetime.strptime('20170107 10:21:28','%Y%m%d %H:%M:%S')

timestamp –> datetime

1
datetime.fromtimestamp(1483755372.0)

str –> time tuple

1
tuple = time.strptime('2017-01-07 10:16:12', '%Y-%m-%d %H:%M:%S')

time tuple –>timestamp

1
time.mktime(tuple)
Share Comments