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模塊提供各類操做時間的函數javascript

說明:通常有兩種表示時間的方式:
       1.時間戳的方式(相對於1970.1.1 00:00:00以秒計算的偏移量),時間戳是唯一的
html

       2.以數組的形式表示即(struct_time),共有九個元素,分別表示,同一個時間戳的struct_time會由於時區不一樣而不一樣java

 

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 模塊

經常使用的有:ide

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日前時間  
相關文章
相關標籤/搜索