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_str
102         t_count = time_str.count(‘:‘)
103         if t_count == 1:
104             time_return += ‘:00‘
105         elif t_count == 0:
106             time_return += ‘ 00:00:00‘
107
108         # 如果日期大于当前日期,则年份减1
109         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 - 1
112             time_return = time_return.replace(str_year, str(int_year_1))
113
114         return time_return
115
116 if __name__ == ‘__main__‘:
117     print getDateTime(‘1周前‘)

时间: 2024-11-03 17:14:11

python 时间转换的相关文章

python时间转换(时间转成int)

需要用到datetime,将datetime结构中的年,月,日,时,分,秒分别取出,乘上对应的整数即可.顺便说一下,由于python中int型是64位,因此可将之一并表达,不会出现C++中可能超过32位的问题 上代码: # /usr/bin/python3 # -*- encoding: utf-8 -*- ''' 测试时间转换 ''' import datetime def convert_date_to_int(dt): t = dt.year * 10000 + dt.month * 10

python时间转换

time时间处理1.获取当前时间(时间戳)time.time() 2.获取当前时间 (元组),参数是时间戳,默认是当前时间戳time.localtime(pams) 3.把时间元组转换时间格式化time.strftime("%Y-%m-%d",时间元组) 4.把时间格式化转换为时间元组time.strptime("2008-02-14 00:00:00",指定前面的时间格式"%Y-%m-%d %H:%M:%S")time.struct_time(

python时间转换 ticks

#设a为字符串 import time a = "2011-09-28 10:00:00" #中间过程,一般都需要将字符串转化为时间数组 time.strptime(a,'%Y-%m-%d %H:%M:%S') >>time.struct_time(tm_year=2011, tm_mon=9, tm_mday=27, tm_hour=10, tm_min=50, tm_sec=0, tm_wday=1, tm_yday=270, tm_isdst=-1) #将"

Python基本时间转换

时间转换 python中处理时间的时候,最常用的就是字符形式与时间戳之间的转换. 把最基本的转换在这里记下来 string -> timestamp import time import dateutil.parser as dateparser def str_to_timestamp(time_str) dt = dateparser.parse(time_str) # OR: dt = time.strptime(datetimestring, fmt) return time.mktim

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

1.将时间转换成时间戳 将如上的时间2017-09-16 11:28:54转换成时间戳 利用strptime()函数将时间转换成时间数组 利用mktime()函数将时间数组转换成时间戳 #!/usr/bin/env python # -*- coding:utf-8 -*- import time dtime= "2017-09-16 11:28:54" #转换成时间数组 timeArray = time.strptime( dtime, "%Y-%m-%d %H:%M:%S

Python的UTC时间转换

UTC时间转换,最终得到的都是UTC时间. 简单来说就是: 时间戳(timestamp) 转换-> UTC显示时间(datetime),使用time.gmtime(timestamp). 显示时间(datetime) 转换-> UTC时间戳(timestamp),使用calendar.timegm(datetime.timetuple()). 注意: VC下相应的接口是gmtime和_mkgmtime. 代码: # -*- coding: gb2312 -*- # UTC时间转换,最终得到的都

Python 调用datetime或者time获取时间的时候以及时间转换,最好设置一下时区 否则会出现相差8个小时的情况

在使用调用datetime或者time获取时间的时候以及时间转换,最好设置一下时区, 因为不同机器设置的时区不同,获取的时间可能就不对,正好我们使用的这两个服务器使用的都是东八区,所以没有问题,设置方法如下: import pytz tz = pytz.timezone('Asia/Shanghai') datetime.datetime.fromtimestamp(1537431607,tz).strftime('%Y-%m-%d %H:%m:%s') 原文地址:https://www.cnb

python 时间操作

import datetimeimport time #获取当前时间datetime.datetime.now() #获取当前日期datetime.date.today() #字符串转换为时间格式>>> t = time.strptime("2009-08-08", "%Y-%m-%d")>>> y,m,d = t[0:3]>>> datetime.date(y,m,d)datetime.date(2009, 8

python时间-time模块

time是python自带的模块,用于处理时间问题,提供了一系列的操作时间的函数. 以下说明针对于 python2.7,其他版本可能有所差异. 模块提供了两个种表示时间的格式: 1.时间戳,是以秒表示从“新纪元”到现在的时间,称为 UTC 或者 GMT.这个“新纪元”指的就是1970年1月1日.所以时间戳指的就是从“新纪元”到某一个时间一共过去了多少秒,可能是一个整数,也可能是一个浮点数.至于为什么会这样,有兴趣的可以读下这篇文章:戳这里 2.一个包括 9 个元素的元祖,这 9 个元素分别为: