import datetime
d=datetime.date(2016,7,24) #新建一个日期,注意前面的0不能有
print(d) => 20106-07-24
d=datetime.date.today() #获取当前日期
print(d)
print(d.year, d.month, d.day()
print(d.weekday) =>打印周几,此时monday是第0天, sunday 6
print(d.isoweekday)=>此时monday是第1天, sunday 7
tdelta = datetime.timedelta(days=7)
print(d+tdelta) =>打印7天后的日期
print(d-tdelta) =>打印7天前的日期
till_days = date1 - date2 #计算两个日期之间有多少天,返回timedelta类型
print(till_days.days)
print(till_days.total_seconds()) #打印共有多少秒
t = datetime.time(9, 30, 45, 10000) #从小时到毫秒,没有年月日
print(t.hour)
dt = datetime.datetime(2016, 7, 26, 12, 30, 45, 100000)#从年份到毫秒
print(dt) =>全部打印
print(dt.date()) #打印日期
print(dt.time()) #大于时间
tdelta=datetime.timedelta(hours=12)
print(dt + tdelta)
datetime.datetime.today() #没有时区
datetime.datetime.now() #可以传入时区
datetime.datetime.utcnow() #
pytz 时区相关的包
datetime.datetime.strftime(format) # datetime->string str format of time
datetime.datetime.strptime(str, format) # string->datetime
datetime.datetime.strptime(mstr, "")
datetime.datetime.combine(date, time)
python中strftime/strptime中format常见格式(区分大小写)
- %a 星期几的简写;如 星期三为Web
- %A 星期几的全称;如 星期三为Wednesday
- %b 月分的简写; 如4月份为Apr
- %B 月份的全称; 如4月份为April
- %c 标准的日期的时间串;(如: 04/07/10 10:43:39)
- %C 年份的后两位数字
- %d 十进制表示的每月的第几天
- %D 月/天/年
- %e 在两字符域中,十进制表示的每月的第几天
- %F 年-月-日
- %g 年份的后两位数字,使用基于周的年
- %G 年分,使用基于周的年
- %h 简写的月份名
- %H 24小时制的小时
- %I 12小时制的小时
- %j 十进制表示的每年的第几天
- %m 十进制表示的月份
- %M 十时制表示的分钟数
- %n 新行符
- %p 本地的AM或PM的等价显示
- %r 12小时的时间
- %R 显示小时和分钟:hh:mm
- %S 十进制的秒数
- %t 水平制表符
- %T 显示时分秒:hh:mm:ss
- %u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
- %U 第年的第几周,把星期日做为第一天(值从0到53)
- %V 每年的第几周,使用基于周的年
- %w 十进制表示的星期几(值从0到6,星期天为0)
- %W 每年的第几周,把星期一做为第一天(值从0到53)
- %x 标准的日期串
- %X 标准的时间串
- %y 不带世纪的十进制年份(值从0到99)
- %Y 带世纪部分的十制年份
- %z,%Z 时区名称,如果不能得到时区名称则返回空字符。
- %% 百分号
df.loc[df.time >= ts, :] #选出指定之间的行
出现:error: redefinition of group name ‘m’ as group 5; was group 2 at position 116,是因为strptime的format格式有问题。