python 时间操作集合

字符串转换为时间戳

首先把字符串转换成<type 'time.struct_time'>类型

struc_time = time.strptime(“2013-06-29 11:17:11”,"%Y-%m-%d %H:%M:%S")
接着把<type 'time.struct_time'> 转换为<type 'float'> 的字符串
time.mktime(struc_time)
简写为

c_time = time.mktime(time.strptime(“2013-06-29 11:17:11”,"%Y-%m-%d %H:%M:%S"))


与mktime想对应的为localtime 把<type 'float'> 的字符串 转换为<type 'time.struct_time'>类型

value = time.localtime(s_time_str)

与strptime想对应的函数为strftime 把<type 'time.struct_time'>类型格式化成字符串

time.strftime('%Y-%m-%d %H:%M:%S',value)

import time,datetime
s = '(2011-07-01 17:38:49)'
s = s.lstrip('(').rstrip(')')
d = datetime.datetime.strptime(s,"%Y-%m-%d %H:%M:%S") #格式符参考下表
print time.mktime(d.timetuple())


取当前时间

方法1

import datetime
now = datetime.datetime.now()
now_time = datetime.datetime.strftime(now,'%Y年%m月%d日  %H:%M:%S ')

方法 2

import time
now = time.time() 
now_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(now))


取一个月以前的时间

month_ago = datetime.datetime.now()-datetime.timedelta(days=30)
month_ago = datetime.datetime.strftime(month_ago,'%Y-%m-%d %H:%M:%S')



python中时间日期格式化符号:

%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 当前时区的名称

%% %号本身


本周星期一和星期天的日期

    this_week_start_dt = date1-datetime.timedelta(days=date1.weekday())
    this_week_start_dt = this_week_start_dt.strftime('%Y-%m-%d')
    this_week_end_dt = date1+datetime.timedelta(days=6-date1.weekday())


上个星期一和星期天的日期

    last_week_start_dt = date1-datetime.timedelta(days=date1.weekday()+7)
    last_week_end_dt = date1-datetime.timedelta(days=date1.weekday()+1)

本月一号和最后一天的日期

y=date1.year
m = date1.month
month_start_dt = datetime.date(y,m,1)

if m = 12:

    month_end_dt = datetime.date(y+1,1,1) - datetime.timedelta(days=1)

else:
    month_end_dt = datetime.date(y,m+1,1) - datetime.timedelta(days=1)

上个月的第一天和最后一天
if m==1:                    #如果是1月
        start_date=datetime.date(y-1,12,1)   
    else:
        start_date=datetime.date(y,m-1,1)        
end_date=datetime.date(y,m,1) - datetime.timedelta(days=1)

这个季度的第一天和最后一天的日期

 y=date1.year
 m = date1.month
 if month in (1,2,3):
     quarter_start_dt = datetime.date(y,1,1)
     quarter_end_dt = datetime.date(y,4,1) - datetime.timedelta(days=1)
    elif month in (4,5,6):
     quarter_start_dt = datetime.date(y,4,1)
     quarter_end_dt = datetime.date(y,7,1) - datetime.timedelta(days=1)
 elif month in (7,8,9):
     quarter_start_dt = datetime.date(y,7,1)
     quarter_end_dt = datetime.date(y,10,1) - datetime.timedelta(days=1)
 else:
     quarter_start_dt = datetime.date(y,10,1)
     quarter_end_dt = datetime.date(y+1,1,1) - datetime.timedelta(days=1)

本季度天数 及 本季度剩余的天数

quarter_days = (quarter_end_dt - quarter_start_dt).days +1
 quarter_rem = (quarter_end_dt - date1).days


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值