def getDateTime(time_str):
'''
转换时间
:param time_str:
:return:
'''
if not isinstance(time_str,unicode):
time_str = time_str.decode('utf-8') time_now = datetime.datetime.now()
time_return = time_str if u'秒' in time_str:
reg = r'(\d+)'
t_second = re.search(reg, time_str)
if t_second is not None:
t_second = t_second.group(1)
t_second = string.atoi(t_second)
t_second = datetime.timedelta(seconds=t_second)
time_return = time_now - t_second
time_return = datetime.datetime.strftime(time_return, '%Y-%m-%d %H:%M:%S')
return time_return
elif u'分钟' in time_str:
reg = r'(\d+)'
t_minute = re.search(reg, time_str)
if t_minute is not None:
t_minute = t_minute.group(1)
t_minute = string.atoi(t_minute)
t_minute = datetime.timedelta(minutes=t_minute)
time_return = time_now - t_minute
time_return = datetime.datetime.strftime(time_return, '%Y-%m-%d %H:%M:%S')
return time_return
elif u'小时' in time_str:
reg = r'(\d+)'
t_hour = re.search(reg, time_str)
if t_hour is not None:
t_hour = t_hour.group(1)
t_hour = string.atoi(t_hour)
t_hour = datetime.timedelta(hours=t_hour)
time_return = time_now - t_hour
time_return = datetime.datetime.strftime(time_return, '%Y-%m-%d %H:%M:%S')
return time_return
elif u'今天' in time_str:
time_return = time_now.strftime('%Y-%m-%d %H:%M:%S')
return time_return
elif u'天前' in time_str:
reg = r'(\d+)'
t_day = re.search(reg, time_str)
if t_day is not None:
t_day = t_day.group(1)
t_day = string.atoi(t_day)
t_day = datetime.timedelta(days=t_day)
time_return = time_now - t_day
time_return = datetime.datetime.strftime(time_return, '%Y-%m-%d %H:%M:%S')
return time_return
elif u'周' in time_str:
reg = u'(\d+)'
t_week = re.search(reg, time_str)
if t_week is not None:
t_week = t_week.group(1)
t_week = string.atoi(t_week)
t_week = datetime.timedelta(weeks=t_week)
time_return = time_now - t_week
time_return = datetime.datetime.strftime(time_return, '%Y-%m-%d %H:%M:%S')
return time_return
elif u'月' in time_str:
reg = r'(\d+)'
t_num = re.search(reg, time_str)
if t_num is not None:
t_num = int(t_num.group(1))
date_to = time_now.month - t_num
# 判断是否跨年
if date_to == 0:
month_to = 12
year_to = -1
else:
month_to = date_to % 12
year_to = (date_to) / 12
# 如果是最后一天31日,注意其他月份没有31日
now_year = time_now.year+year_to
d = calendar.monthrange(now_year,month_to)
now_day = time_now.day
if now_day > d[1]:
now_day = d[1]
date_from = datetime.datetime(now_year,month_to,now_day,time_now.hour,time_now.minute,time_now.second)
time_return = datetime.datetime.strftime(date_from, '%Y-%m-%d %H:%M:%S')
return time_return
elif u'年' in time_str:
reg = u'(\d+)'
t_year = re.search(reg, time_str)
if t_year is not None:
t_year = int(t_year.group(1))
date_from = datetime.datetime(time_now.year-t_year,time_now.month,time_now.day,time_now.hour,time_now.minute,time_now.second)
time_return = datetime.datetime.strftime(date_from, '%Y-%m-%d %H:%M:%S')
return time_return
else:
# time_return = time_str
int_year = time_now.year
str_year = str(int_year)
if time_str.find(str_year) < 0:
time_return = str_year + '-' + time_str
t_count = time_str.count(':')
if t_count == 1:
time_return += ':00'
elif t_count == 0:
time_return += ' 00:00:00' # 如果日期大于当前日期,则年份减1
r_date = datetime.datetime.strptime(time_return, '%Y-%m-%d %H:%M:%S')
if r_date > time_now:
int_year_1 = int_year - 1
time_return = time_return.replace(str_year, str(int_year_1)) return time_return if __name__ == '__main__':
print getDateTime('1周前')

python 时间转换的更多相关文章

  1. python 时间转换相关

    最近需要操作时间的地方相当的多,包括打点,包括时间转换. 罗列最近遇到的两个需求. 1. 关于上篇文章写的base64上传图片的问题,我使用了打点来计算解码需要多少时间.这个对时间精度要求是比较高的. ...

  2. Python时间,日期,时间戳之间转换,时间转换时间戳,Python时间戳转换时间,Python时间转换时间戳

    #1.将字符串的时间转换为时间戳方法: a = "2013-10-10 23:40:00" #将其转换为时间数组 import time timeArray = time.strp ...

  3. python时间转换

    #设a为字符串 import time a = "2011-09-28 10:00:00" #中间过程,一般都需要将字符串转化为时间数组 time.strptime(a,'%Y-% ...

  4. python时间转换 ticks-FYI

    #设a为字符串 import time a = "2011-09-28 10:00:00" #中间过程,一般都需要将字符串转化为时间数组 time.strptime(a,'%Y-% ...

  5. Python基本时间转换

    时间转换 python中处理时间的时候,最常用的就是字符形式与时间戳之间的转换. 把最基本的转换在这里记下来 string -> timestamp import time import dat ...

  6. python 时间与时间戳之间的转换

    https://blog.csdn.net/kl28978113/article/details/79271518 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运 ...

  7. python 时间和时间戳的转换

    对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种: 将时间转换 ...

  8. python—时间与时间戳之间的转换

    python-时间与时间戳之间的转换 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块 ...

  9. UTC,BJT时间转换-python

    #UTC,BJT Conversion.py #接收一个BJT时间 bjt = eval(input("输入时间")) #转换 utc = bjt + 2400 - 800 if ...

随机推荐

  1. getComputedStyle/currentStyle/style之间的爱恨情仇

    getComputedStyle是? getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值.返回的是一个CSS样式声明对象([object CSSStyleDeclarat ...

  2. java模拟post方式提交表单实现图片上传【转】

     转自:http://blog.csdn.net/5iasp/article/details/8669644 模拟表单html如下:   <form action="up_result ...

  3. 移植一个cocos2d-x游戏

    1.编译的时候,如果遇到如下的提示信息: No rule to make target `jni/./../Classes/KeyBoardInput.cpp', needed by `obj/loc ...

  4. UFLDL 教程三总结与答案

    主成分分析(PCA)是一种能够极大提升无监督特征学习速度的数据降维算法.更重要的是,理解PCA算法,对实现白化算法有很大的帮助,很多算法都先用白化算法作预处理步骤.这里以处理自然图像为例作解释. 1. ...

  5. MySql 里的IFNULL、NULLIF和ISNULL用法

    MySql 里的IFNULL.NULLIF和ISNULL用法 mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如expr 为null,那么isnu ...

  6. 转行进入IT前端,目标全栈

    选择进入IT这个行业,未来充满着挑战,未来充满着机遇,互联网已经走入高速稳定的发展正轨了,前端大时代也已经到来了.前端之路怎么走,前端需要不停地学习新知识,跟紧时代的步伐,成为全栈工程师是前端的目标. ...

  7. node的核心模块path

    //导入模块path var path=require("path"); //path.basename :输出文件名+后缀 //console.log(path.basename ...

  8. 移动wap隐藏的坑

    非原创,只做转载 ------------------------------------------------------------------------------------------- ...

  9. 漫谈iOS程序的证书和签名机制

    接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕和崇拜.于是,花了一点时间去研究了一下 ...

  10. C++ 系列:多线程资源收集

    Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...