zoukankan      html  css  js  c++  java
  • time和datetime时间戳---python

    参考网址,写的很棒:

     

     

    http://www.open-open.com/lib/view/open1479363382807.html

    个人封装好的函数,可以互相转换

    class my_datetime():
        """
        Basic usage:
    
            a = datetime.datetime(2016, 9, 21, 13, 42, 8)
            b = "2016-11-15 15:32:12"
            c = u'2016-09-21 13:37:34'
            print type(c)
            d = 1474436826.0
            e = 13710788676.0
            ret = my_datetime()
            res = ret.become_datetime(e)
            print res
            print type(res)
        """
    
        def __init__(self):
            # 缺少对utc时间的判断
            pass
    
        def become_timestamp(self, dtdt):
            # 将时间类型转换成时间戳
            if isinstance(dtdt, datetime.datetime):
                timestamp = time.mktime(dtdt.timetuple())
                return timestamp
    
            elif isinstance(dtdt, str):
                if dtdt.split(" ")[1:]:
                    a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d  %H:%M:%S")
                    timestamp = time.mktime(a_datetime.timetuple())
                else:
                    a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
                    timestamp = time.mktime(a_datetime.timetuple())
                return timestamp
    
            elif isinstance(dtdt, float):
                return dtdt
    
                # elif isinstance(dtdt, unicode):
                #     if dtdt.split(" ")[1:]:
                #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S")
                #         timestamp = time.mktime(a_datetime.timetuple())
                #     else:
                #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
                #         timestamp = time.mktime(a_datetime.timetuple())
                #     return timestamp
    
        def become_datetime(self, dtdt):
            # 将时间类型转换成datetime类型
            if isinstance(dtdt, datetime.datetime):
                return dtdt
    
            elif isinstance(dtdt, str):
                if dtdt.split(" ")[1:]:
                    a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S")
                else:
                    a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
                return a_datetime
    
            elif isinstance(dtdt, float):
                # 把时间戳转换成datetime类型
                a_datetime = datetime.datetime.fromtimestamp(dtdt)
                return a_datetime
    
                # elif isinstance(dtdt, unicode):
                #     if dtdt.split(" ")[1:]:
                #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S")
                #     else:
                #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
                #     return a_datetime
    
        def become_str(self, dtdt):
            # 把时间类型转换成字符串
            if isinstance(dtdt, datetime.datetime):
                a_datetime = dtdt.strftime("%Y-%m-%d %H:%M:%S")
                return a_datetime
    
            elif isinstance(dtdt, str):
                return dtdt
    
            elif isinstance(dtdt, float):
                a_datetime_local = datetime.datetime.fromtimestamp(dtdt)
                a_datetime = a_datetime_local.strftime("%Y-%m-%d %H:%M:%S")
                return a_datetime
    
                # elif isinstance(dtdt, unicode):
                #     # 区别:一个是strp, 一个是strf
                #     if dtdt.split(" ")[1:]:
                #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S")
                #         a_datetime = a_datetime.strftime("%Y-%m-%d %H:%M:%S")
                #     else:
                #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
                #         a_datetime = a_datetime.strftime("%Y-%m-%d")
                #     return a_datetime
    
        @staticmethod
        def str_datetime():
            return (datetime.datetime.now()).strftime("%Y-%m-%d %H:%M:%S")
    View Code

    time模块

    time模块提供各种操作时间的函数

    说明:一般有两种表示时间的方式:
           1.时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的

           2.以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同

    The tuple items are:
      year (including century, e.g. 1998)
      month (1-12)
      day (1-31)
      hours (0-23)
      minutes (0-59)
      seconds (0-59)
      weekday (0-6, Monday is 0)
      Julian day (day in the year, 1-366)
      DST (Daylight Savings Time) flag (-1, 0 or 1)
    1   time()  -- 返回时间戳  
    2   sleep() -- 延迟运行单位为s  
    3   gmtime() -- 转换时间戳为时间元组(时间元组)  
    4   localtime() -- 转换时间戳为本地时间对象  
    5   asctime() -- 将时间对象转换为字符串  
    6   ctime() -- 将使劲按戳转换为字符串  
    7   mktime() -- 将本地时间转换为时间戳  
    8   strftime() -- 将时间对象转换为规范性字符串  

    常用的格式代码:

     1     %Y Year with century as a decimal number.  
     2     %m Month as a decimal number [01,12].  
     3     %d Day of the month as a decimal number [01,31].  
     4     %H Hour (24-hour clock) as a decimal number [00,23].  
     5     %M Minute as a decimal number [00,59].  
     6     %S Second as a decimal number [00,61].  
     7     striptime() --将时间字符串根据指定的格式化字符转换成数组形式的时间  
     8       
     9     print(time.time())  ---返回当前时间戳  
    10     print(time.ctime())  ---返回当前时间  
    11     print(time.ctime(time.time()-86400)) --将时间戳转换为字符串  
    12     print(time.localtime(time.time()-86400)) --本地时间  
    13     print(time.mktime(time.localtime()))  --与time.localtime()功能相反,将struct_time格式转回成时间戳格式  
    14     print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()))  -- 将struct_time格式转换指定d字符串格式  
    15     print(time.strptime("2016-01-28","%Y-%m-%d"))  --将字符串格式转换成struct_time格式  
    16     time.sleep(5) 休眠5s  

    datetime 模块

    常用的有:

    import datetime
     
    print(datetime.datetime.now())                                         # 2016-05-17 15:46:40.784376  获取当前的日期和时间
    print(datetime.datetime.now()+datetime.timedelta(days=10))             # 2016-05-27 15:47:45.702528  将当前的时间向后推迟10天
    print(datetime.date.today())                                           # 2016-05-17  获取当前的日期
    print(datetime.datetime.utcnow())                                      # 2016-05-17 08:23:41.150628  获取格林威治时间
     
    print(datetime.datetime.now().timetuple())                      # time.struct_time(tm_year=2016 ... tm_hour=16,...)获取当前一个包含当前时间的结构体
    print(datetime.datetime.now().timestamp())                      # 1463473711.057878  获取当前的时间戳
    print((datetime.datetime.fromtimestamp(1463473711.057878)))          # 2016-05-17 16:28:31.057878 将时间戳转换成日期和时间
    print(datetime.datetime.strptime('2016-05-17 16:28:31','%Y-%m-%d %H:%M:%S'))  #2016-05-17 16:28:31     str转换为datetime
    print(datetime.datetime.now().strftime('%D, %m %d %H:%M'))                    #05/23/16, 05 23 10:10  datetime转换为str
    

    定义的类有:

     1 datetime.date   --表示日期的类。常用的属性有year,month,day  
     2 datetime.time   ---表示时间的类。床用的属性有hour,minute,second,microsecond  
     3 datetime.datetime  --表示日期时间  
     4 datetime.timedalta --表示时间间隔,即两个时间点之间的长度  
     5 date类  
     6 date类表示日期,构造函数如下:  
     7 datetime.date(year,month,day);  
     8     year(1-9999)  
     9     month(1-12)  
    10     day(1-31)  
    11 date.today()--返回一个表示当前本地日期的date对象  
    12 date.fromtimestamp(timestamp) -- 根据给定的时间戳,返回一个date对象  
    13 date.year() -- 取给定时间的年  
    14 date.month() -- 取时间对象的月  
    15 date.day() -- 取给定时间的日  
    16     date.replace()  -- 生成一个新的日期对象,用参数指定的年,月, 日代替原有对象中的属性  
    17     date.timetuple() -- 返回日期对应的time.struct_time对象  
    18     date.weekday() -- 返回week,Monday==0...Sunday == 6  
    19     date.isoweekday() -- 返回weekday,Monday == 1...Sunday == 7  
    20     date.ctime()  -- 返回给定时间的字符串格式  
    print(datetime.date.today().year)  -- 取时间对象的年  
    print(datetime.date.today().month) --取时间对象的月  
    print(datetime.date.today().day)  --取时间对象的日  
    print(datetime.date.today().replace(2010,6,12))  --生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性  
    print(datetime.date.today().timetuple()) 返回给定时间的时间元组/对象  
    print(datetime.date.today().weekday())  -- 返回weekday,从0开始  
    print(datetime.date.today().ctime)  --返回给定时间的字符串格格式  
      
      
        .tiem类  
        time类表示时间,由时,分,秒以及微秒组成  
            time.min()  --最小表示时间  
            time.max()  --最大表示时间  
            time.resolution()  -- 微秒  
        案例:  
            最大时间  
            print(datetime.time.max)  
            最小时间  
            print(datetime.time.min)  
            时间最小单位,微秒  
            print(datetime.time.resolution)  
     1     ·datetime类  
     2         datetime是date与time的结合体,包括date与time的所有信息  
     3         datetime.max()  --最大值  
     4         datetime.min()  --最小值  
     5         datetime.resolution --datetime最小单位  
     6         datetime.today()  -- 返回一个表示当前本地时间  
     7         datetime.fromtimestamp()  --根据给定的时间戳,返回一个datetime对象  
     8         datetime.year() --取年  
     9         datetime.month() --取月  
    10         datetime.day() -- 取日期  
    11         datetim.replace() - 替换时间  
    12         datetime.strptime()  --将字符串转换成日期格式  
    13         datetime.time() -- 取给定日期时间的时间  
     1 案例:  
     2   
     3   
     4 print(datetime.datetime.max)         #datetime最大值  
     5   
     6 print(datetime.datetime.min)         #datetime最小值  
     7   
     8 print(datetime.datetime.resolution)   #datetime最小单位  
     9   
    10 print(datetime.datetime.today())     #返回一个表示当前本地时间  
    11   
    12 print(datetime.datetime.fromtimestamp(time.time()))#根据给定的时间戮,返回一个datetime对象  
    13   
    14 print(datetime.datetime.now().year)   #取时间对象的年  
    15   
    16 print(datetime.datetime.now().month)   #取时间对象的月  
    17   
    18 print(datetime.datetime.now().day)    #取时间对象的日  
    19   
    20 print(datetime.datetime.now().replace(2010,6,12))#生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性  
    21   
    22 print(datetime.datetime.now().timetuple())  #返回给定时间的时间元组/对象  
    23   
    24 print(datetime.datetime.now().weekday())  #返回weekday,从0开始  
    25   
    26 print(datetime.datetime.now().isoweekday())  #返回weekday,从1开始  
    27   
    28 print(datetime.datetime.now().ctime())    #返回给定时间的字符串格式  
    29   
    30 print(datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M"))#将字符串转换成日期格式  
    31   
    32 print(datetime.datetime.now().time())   #取给定日期时间的时间  
    33   
    34 print(datetime.datetime.now() + datetime.timedelta(days=-5))#获取5日前时间  
  • 相关阅读:
    系统组件:动作条ActionBar
    Android Studio 常用快捷键汇总
    Android第三方服务(1):语音识别(1)
    Android数据存储(4):SQLite Database
    Android数据存储(3):External Storage
    Android数据存储(2):Internal Storage
    Android数据存储(1):SharedPreferences
    Android网络通信框架Volley总结
    LeetCode刷题记录
    【hard】282. Expression Add Operators
  • 原文地址:https://www.cnblogs.com/renfanzi/p/5642573.html
Copyright © 2011-2022 走看看