python date、time、datetime

文章目录

  • 常用datetime解析日期
  • date对象
  • time对象
  • datetime对象
  • 格式化时间
    • strftime(): datetime转换成指定格式的日期时间字符串
    • strptime(): 字符串转换成指定格式的datetime


常用datetime解析日期

from datetime import date

def strptime(x):
    dt= datetime.strptime(x, '%d.%m.%Y')
    return dt
#sales为一个DataFrame表格,date为一个日期,但是是string类型的
#将date的类型转换为datetime类型的日期
sales.date= sales.date.apply(strptime)


  • class datetime.date:
    公历日期
    属性:year,month和day
  • class datetime.time:
    每天精确到时分秒
    属性:hour、minute、second、microsecond和tzinfo
  • class datetime.datetime:
    日期+时间
    属性:year、month、day、hour、minute、second、microsecond和tzinfo
  • clas datetime.timedelta:
    表示两个date、time或datetime实例之间相差的时间,分辨率达到微秒

date对象

类属性:
date.min
date.max
实例属性:
date.year
date.month
date.day

实例方法:
date.replace(year, month, day): 依据关键字参数给出的新值,返回一个新的日期
date.isoformat():返回以ISO 8601 格式‘YYYY-MM-DD’表示日期的字符串。
date.ctime():返回表示日期的字符串
date.strftime():返回一个表示日期的字符串,由显式的格式字符串控制。
支持的操作:
timedelta = date1 - date2

from datetime import date
str="01.10.2018"
d= date.today()
d
datetime.date(2018, 12, 24)
type(d)
datetime.date
date.ctime(d)
'Mon Dec 24 00:00:00 2018'
date.isoformat(d)
'2018-12-24'

time对象

类属性:
time.min
time.max
实例属性:
time.hour
time.minute
time.second

实例方法:
time.replace([hour[, minute[, second[, microsecond[, tzinfo]]]]]):返回具有相同值的time
time.isoformat():返回以ISO 8601 格式HH:MM:SS.mmmmmm表示间的字符串
time.strftime(format):返回一个表示time的字符串,由显式的格式字符串控制。

datetime对象

类属性:
datetime.min
datetime.max
实例属性:
datetime.year
datetime.month

datetime.hour
datetime.minute

实例方法:
datetime.replace() 返回具有相同属性的 datetime
datetime.date():返回具有相同年、月和日的date对象
datetime.time():返回具有相同小时、分钟、秒和微秒的time对象
datetime.timestamp():返回对应于datetime实例的POSIX时间戳
datetime.weekday():返回一星期中的第几天,其中星期一是0,星期日是6
datetime.isoweekday():返回一星期中的第几天,其中星期一是1,星期日是7
date.isocalendar():返回一年中的第几周
datetime.isoformat(sep=’T’) 返回以ISO 8601 格式YYYY-MM-DDTHH:MM:SS.mmmmmm表示日期和时间的字符串
datetime.ctime():返回一个表示日期和时间的字符串
datetime.strftime(format):返回一个表示日期和时间的字符串,由显式的格式字符串控制

格式化时间

date、datetime和time对象都支持 strftime(format) 方法,strptime()方法

  • Python格式化日期时间的函数为:datetime.datetime.strftime()。在显式格式字符串的控制下创建一个表示时间的字符串
  • 由字符串转为日期型的函数为:datetime.datetime.strptime()

strftime(): datetime转换成指定格式的日期时间字符串

#格式:
datetime对象.strftime('format' ) #format:如,'%Y-%m-%d %H:%M:%S'

%d 返回的是当前时间是当前月的第几天
%m 返回月份 范围[0,12]
%Y 四个数字表示的年份 2015
%y 两个数字表示的年份(不带世纪) 15

%H 以24小时制表示当前小时
%M 返回分钟数 范围 [0,59]
%S 返回秒数 范围 [0,61]
%f 微秒的表示: 范围: [0,999999]

%I 以12小时制表示当前小时
%p 返回是上午还是下午–AM or PM

%j 返回 当天是当年的第几天 范围[001,366]
%W 返回当周是当年的第几周 以周一为第一天

from datetime import datetime
dt= datetime.now()
print(dt)
print(dt.year, dt.month, dt.day)
2018-12-24 11:49:39.256000
(2018, 12, 24)
dt.strftime('%Y-%m-%d %H:%M:%S') #24小时制时间
'2018-12-24 11:49:39'
dt.strftime('%Y-%m-%d %I:%M:%S %p') #12小时制时间
'2018-12-24 11:49:39 AM'
print('星期缩写:', dt.strftime('%a'))
('\xe6\x98\x9f\xe6\x9c\x9f\xe7\xbc\xa9\xe5\x86\x99\xef\xbc\x9a', 'Mon')
print('星期全拼%%A: %s '  % dt.strftime( '%A' ))
星期全拼%A: Monday 
print('今天是今年的第%s天 '  % dt.strftime( '%j' ))
print('今周是今年的第%s周 '  % dt.strftime( '%W' ))
今天是今年的第358天 
今周是今年的第52周 

strptime(): 字符串转换成指定格式的datetime

#格式
datetime.strptime(string, 'format')#NOTE: this format must match str format
from datetime import datetime
str='2018.10.01'
datetime.strptime(str, '%Y.%m.%d')#'2018.10.01' must match format '%Y.%m.%d'  写成'%Y/%m/%d'将是不匹配的,出错
datetime.datetime(2018, 10, 1, 0, 0)
str1='01.10.2018'
datetime.strptime(str1, '%d.%m.%Y')
datetime.datetime(2018, 10, 1, 0, 0)
str2='2018/12/25'
dt2= datetime.strptime(str2, '%Y/%m/%d') #'2018/12/25' must match format '%Y/%m/%d'
dt2
datetime.datetime(2018, 12, 25, 0, 0)

你可能感兴趣的:(python数据分析)