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)
类属性:
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.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.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()方法
#格式:
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周
#格式
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)