python中的日期

1.存在形式:

  时间只以三种形式存在,即int(float)、str、date

 

2.格式:

  年、月、日:%y、%m、%d    #对于年,四位数的格式是大写的%Y,小写的%y市两位数的年,如99年

  时、分、秒:%H、%M、%S

 

3.转换

  from datetime import datetime

  1. datetime.strptime(str,'str的格式')        #str->date
  2. datetime.strftime(date,'str的格式')      #date->str
  3. datetime.fromtimestamp(int)              #int->date
  4. datetime.timestamp(date)                  #date->float   (10位的秒级,float类型。可以*1e+3,1e+6变成对应的毫秒和微秒)

  

4.两种场景

  场景一:

  输入:int(float)

  输出:date、str

  实例:

t_int = 10.1
t_date = datetime.fromtimestamp(t_int)
t_str = datetime.strftime(t_date, '%Y-%m-%d %H:%M:%S')
print(t_date,t_str)

 

  场景二:

  输入:str

  输出:date、int(float)

  实例: 

t_str = '2000-01-01'
t_date = datetime.strptime(t_str, '%Y-%m-%d')
t_int = datetime.timestamp(t_date)
print(t_date,t_int)
 
附:OSError: [Errno 22] Invalid argument  
   常为输入的int为负数,或者date小于1970,超出处理范围了。 
 
5.时间相加

from dateutil.relativedelta import relativedelta
df['date'] = df.date.map(lambda x: x + relativedelta(years=4))

 

6.时间截取

  datetime类型:

  截取年月日: df['ts_date'] = df.ts_datetime.map(lambda x: x.date())     #输入为datetime类型,输出为'datetime.date(可以直接用str转成字符串)

  截取时分秒:df['ts_time'] = df.ts_datetime.map(lambda x: x.time())       #输入为datetime类型,输出为'datetime.date

  字符串类型:

    直接切片

 
 
posted @ 2021-11-03 22:13  cookall  阅读(255)  评论(0)    收藏  举报