首页 > 代码库 > python 时间转换

python 时间转换

 

技术分享
  1 def getDateTime(time_str):  2     ‘‘‘  3     转换时间  4     :param time_str:  5     :return:  6     ‘‘‘  7     if not isinstance(time_str,unicode):  8         time_str = time_str.decode(utf-8)  9  10     time_now = datetime.datetime.now() 11     time_return = time_str 12  13     if u in time_str: 14         reg = r(\d+) 15         t_second = re.search(reg, time_str) 16         if t_second is not None: 17             t_second = t_second.group(1) 18             t_second = string.atoi(t_second) 19             t_second = datetime.timedelta(seconds=t_second) 20             time_return = time_now - t_second 21             time_return = datetime.datetime.strftime(time_return, %Y-%m-%d %H:%M:%S) 22             return time_return 23     elif u分钟 in time_str: 24         reg = r(\d+) 25         t_minute = re.search(reg, time_str) 26         if t_minute is not None: 27             t_minute = t_minute.group(1) 28             t_minute = string.atoi(t_minute) 29             t_minute = datetime.timedelta(minutes=t_minute) 30             time_return = time_now - t_minute 31             time_return = datetime.datetime.strftime(time_return, %Y-%m-%d %H:%M:%S) 32             return time_return 33     elif u小时 in time_str: 34         reg = r(\d+) 35         t_hour = re.search(reg, time_str) 36         if t_hour is not None: 37             t_hour = t_hour.group(1) 38             t_hour = string.atoi(t_hour) 39             t_hour = datetime.timedelta(hours=t_hour) 40             time_return = time_now - t_hour 41             time_return = datetime.datetime.strftime(time_return, %Y-%m-%d %H:%M:%S) 42             return time_return 43     elif u今天 in time_str: 44         time_return = time_now.strftime(%Y-%m-%d %H:%M:%S) 45         return time_return 46     elif u天前 in time_str: 47         reg = r(\d+) 48         t_day = re.search(reg, time_str) 49         if t_day is not None: 50             t_day = t_day.group(1) 51             t_day = string.atoi(t_day) 52             t_day = datetime.timedelta(days=t_day) 53             time_return = time_now - t_day 54             time_return = datetime.datetime.strftime(time_return, %Y-%m-%d %H:%M:%S) 55             return time_return 56     elif u in time_str: 57         reg = u(\d+) 58         t_week = re.search(reg, time_str) 59         if t_week is not None: 60             t_week = t_week.group(1) 61             t_week = string.atoi(t_week) 62             t_week = datetime.timedelta(weeks=t_week) 63             time_return = time_now - t_week 64             time_return = datetime.datetime.strftime(time_return, %Y-%m-%d %H:%M:%S) 65             return time_return 66     elif u in time_str: 67         reg = r(\d+) 68         t_num = re.search(reg, time_str) 69         if t_num is not None: 70             t_num = int(t_num.group(1)) 71             date_to = time_now.month - t_num 72             # 判断是否跨年 73             if date_to == 0: 74                 month_to = 12 75                 year_to = -1 76             else: 77                 month_to = date_to % 12 78                 year_to = (date_to) / 12 79             # 如果是最后一天31日,注意其他月份没有31日 80             now_year = time_now.year+year_to 81             d = calendar.monthrange(now_year,month_to) 82             now_day = time_now.day 83             if now_day > d[1]: 84                 now_day = d[1] 85             date_from = datetime.datetime(now_year,month_to,now_day,time_now.hour,time_now.minute,time_now.second) 86             time_return = datetime.datetime.strftime(date_from, %Y-%m-%d %H:%M:%S) 87             return time_return 88     elif u in time_str: 89         reg = u(\d+) 90         t_year = re.search(reg, time_str) 91         if t_year is not None: 92             t_year = int(t_year.group(1)) 93             date_from = datetime.datetime(time_now.year-t_year,time_now.month,time_now.day,time_now.hour,time_now.minute,time_now.second) 94             time_return = datetime.datetime.strftime(date_from, %Y-%m-%d %H:%M:%S) 95             return time_return 96     else: 97         # time_return = time_str 98         int_year = time_now.year 99         str_year = str(int_year)100         if time_str.find(str_year) < 0:101             time_return = str_year + - + time_str102         t_count = time_str.count(:)103         if t_count == 1:104             time_return += :00105         elif t_count == 0:106             time_return +=  00:00:00107 108         # 如果日期大于当前日期,则年份减1109         r_date = datetime.datetime.strptime(time_return, %Y-%m-%d %H:%M:%S)110         if r_date > time_now:111             int_year_1 = int_year - 1112             time_return = time_return.replace(str_year, str(int_year_1))113 114         return time_return115 116 if __name__ == __main__:117     print getDateTime(1周前)
View Code

 

python 时间转换