1.pd.to_datetime('13000101', format='%Y%m%d')
2.时区
auth_user['date_joined'] = auth_user['date_joined'].apply(lambda x: pd.Timestamp(x, tz='Asia/Shanghai'))
3.arrow模块
import arrow
one = b['timestamp'][41080]
two = arrow.get(one)
three = two.format('YYYY-MM-DD HH:mm:ss')
4.转换
# string转datetime
str = '2012-11-19'
date_time = datetime.datetime.strptime(str,'%Y-%m-%d')
date_time
# datetime转string
date_time.strftime('%Y-%m-%d')
# datetime转时间戳
time_time = time.mktime(date_time.timetuple())
# 时间戳转string
time.strftime('%Y-%m-%d',time.localtime(time_time))
# date转datetime
date = datetime.date.today()
print(date)
datetime.date(2012,11,19) # 只有date,这个好
datetime.datetime.strptime(str(date),'%Y-%m-%d') #将date转换为str,在由str转换为datetime
- 生成日期列表、改变周的周期、生成周日期范围
def get_week_date():
# 生成日期列表
def datelist(beginData, endDate):
date_l = [datetime.strftime(x, '%Y-%m-%d') for x in list(pd.date_range(start=beginData, end=endDate))]
return date_l
date = datelist(str(nowyear) + '-01-01', str(nowyear) + '-12-31')
date = pd.DataFrame(date, columns=['day'])
date['day'] = pd.to_datetime(date.day)
# 默认的week周期是从周一到周日,这里生成周日到周六为周期的周
date['week'] = date['day'].apply(lambda x: x.isocalendar()[1] + 1 if x.isocalendar()[2] == 7 else x.isocalendar()[1])
date.loc[date['day'] == pd.to_datetime('2017-01-01'), 'week'] = 1
# 生成周对应的日期范围
week_list = list(set(date.week))
week_day = date.set_index(['week'])
w = []
for each in week_list:
var = week_day[week_day.index == each]
if len(var) == 7:
t = str(var.iloc[0, 0])[5:10] + '~' + str(var.iloc[-1, 0])[5:10]
w_eek = list(var.index)[0]
w.append([w_eek, t])
else:
pass
w_date = pd.DataFrame(w).rename(columns={0: 'week', 1: 'w_date'})
return w_date
- strftime
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身