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
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