python時間

2021-03-01 牛建邦

calendar

         

                 

import calendar

year = calendar.calendar(2020,w=3,l=1,c=8)#c:每月間隔距離;w:每日寬度間隔;l:每星期行數

print(year)

"""

                              2020

 

          January                            February                            March

Mon Tue Wed Thu Fri Sat Sun        Mon Tue Wed Thu Fri Sat Sun        Mon Tue Wed Thu Fri Sat Sun

          1   2   3   4   5                              1   2                                  1

  6   7   8   9  10  11  12          3   4   5   6   7   8   9          2   3   4   5   6   7   8

 13  14  15  16  17  18  19         10  11  12  13  14  15  16          9  10  11  12  13  14  15

 20  21  22  23  24  25  26         17  18  19  20  21  22  23         16  17  18  19  20  21  22

 27  28  29  30  31                 24  25  26  27  28  29             23  24  25  26  27  28  29

                                                                       30  31

 

           April                               May                                June

Mon Tue Wed Thu Fri Sat Sun        Mon Tue Wed Thu Fri Sat Sun        Mon Tue Wed Thu Fri Sat Sun

          1   2   3   4   5                          1   2   3          1   2   3   4   5   6   7

  6   7   8   9  10  11  12          4   5   6   7   8   9  10          8   9  10  11  12  13  14

 13  14  15  16  17  18  19         11  12  13  14  15  16  17         15  16  17  18  19  20  21

 20  21  22  23  24  25  26         18  19  20  21  22  23  24         22  23  24  25  26  27  28

 27  28  29  30                     25  26  27  28  29  30  31         29  30

 

            July                              August                           September

Mon Tue Wed Thu Fri Sat Sun        Mon Tue Wed Thu Fri Sat Sun        Mon Tue Wed Thu Fri Sat Sun

          1   2   3   4   5                              1   2              1   2   3   4   5   6

  6   7   8   9  10  11  12          3   4   5   6   7   8   9          7   8   9  10  11  12  13

 13  14  15  16  17  18  19         10  11  12  13  14  15  16         14  15  16  17  18  19  20

 20  21  22  23  24  25  26         17  18  19  20  21  22  23         21  22  23  24  25  26  27

 27  28  29  30  31                 24  25  26  27  28  29  30         28  29  30

                                    31

 

          October                            November                           December

Mon Tue Wed Thu Fri Sat Sun        Mon Tue Wed Thu Fri Sat Sun        Mon Tue Wed Thu Fri Sat Sun

              1   2   3   4                                  1              1   2   3   4   5   6

  5   6   7   8   9  10  11          2   3   4   5   6   7   8          7   8   9  10  11  12  13

 12  13  14  15  16  17  18          9  10  11  12  13  14  15         14  15  16  17  18  19  20

 19  20  21  22  23  24  25         16  17  18  19  20  21  22         21  22  23  24  25  26  27

 26  27  28  29  30  31             23  24  25  26  27  28  29         28  29  30  31

 """

#isleap(year)#該函數的作用是判斷某個年份到底是不是閏年。如果是則返回True,否則返回的是False。

print(calendar.isleap(2020))#Ture

#leapdays(y1,y2)判斷兩個年份之間有多少個閏年,包含y1,但是不包含y2,

print(calendar.leapdays(2000, 2021))#6

#month(year,month,w=2,l=1)該函數返回的是year年的month月的日曆,只有兩行標題,一周一行。

print(calendar.month(2021,2, w=4, l=2))#w左右寬度,l是上下高度

"""

          February 2021

 

Mon  Tue  Wed  Thu  Fri  Sat  Sun

 

  1    2    3    4    5    6    7

 

  8    9   10   11   12   13   14

 

 15   16   17   18   19   20   21

 

 22   23   24   25   26   27   28

"""

#monthcalendar(year,month)通過列表的形式返回year年month月的日曆,列表中還是列表形式。每個子列表是一個星期。如果沒有本月的日期則用0表示。每個子列表都是從星期1開始的,特點概括如下:每個子列表代表的是一個星期;從星期一到星期日,沒有出現在本月的日期用0代替

print(calendar.monthcalendar(2021,4))#[[0, 0, 0, 1, 2, 3, 4], [5, 6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24, 25], [26, 27, 28, 29, 30, 0, 0]]

#monthrange(year,month)該函數返回的結果是一個元組,元組中有兩個數值(a,b).數值a代表的是該月從星期幾開始;規定6代表星期天,取值為0-6;數值b代表該月總共有多少天

print(calendar.monthrange(2021,1))#(4, 31)

#weekday(y,m,d)weekday方法是輸入年月日,我們便可知道這天是星期幾;返回值是0-6,0代表星期1,6代表星期天

print(calendar.weekday(2021,2,3))#2

print(calendar.weekheader(2))#Mo Tu We Th Fr Sa Su

print(calendar.weekheader(3))#Mon  Tue  Wed  Thu  Fri  Sat  Sun

print(calendar.weekheader(8))#  Mon      Tue      Wed      Thu      Fri      Sat      Sun

'''

time

import time

print(time.time())#獲取當前時間的時間戳。1612322294.6218581

#time.localtime的參數默認是time.time()的時間戳,可以自己輸入某個時間戳來獲取其對應的時間:默認當前時間戳;指定某個時間戳

print(time.localtime())#列印當前的時間,得到的結果是時間元組time.struct_time(tm_year=2021, tm_mon=2, tm_mday=3, tm_hour=11, tm_min=18, tm_sec=14, tm_wday=2, tm_yday=34, tm_isdst=0)

print(time.localtime(000000))#time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

#ctime的參數默認是時間戳;如果沒有,也可以指定一個時間戳

print(time.ctime())#Wed Feb  3 11:18:14 2021

print(time.ctime(10))#Thu Jan  1 08:00:10 1970

#time.asctime的參數為空時,默認是以time.localtime的值為參數,得到當前的日期、時間、星期;另外,我們也可以自己設置參數,參數是時間元組:使用當前時間的默認時間元組localtime;自己指定一個時間元組

print(time.asctime())#Wed Feb  3 11:18:14 2021

print(time.asctime(time.localtime(10)))#Thu Jan  1 08:00:10 1970

print(time.gmtime())#格林威治時間time.struct_time(tm_year=2021, tm_mon=2, tm_mday=3, tm_hour=3, tm_min=18, tm_sec=14, tm_wday=2, tm_yday=34, tm_isdst=0)

#mktime,mktime()也是以時間元組為參數的,它返回的是時間戳,相當於是localtime的逆向過程:

print(time.mktime(time.localtime()))#1612322860.0

#strftime()是按照我們指定的格式將時間元組轉化為字符串;如果不指定時間元組,默認是當前時間localtime()。

print(time.strftime('%Y-%m-%d %H:%M:%S %W %U %x %X'))#2021-02-03 11:30:54 05 05 02/03/21 11:30:54

#strptime()是將字符串轉化為時間元組,我們需要特別注意的是,它有兩個參數:待轉化的字符串;時間字符串對應的格式,

print(time.strptime('2021-02-03 11:30:54','%Y-%m-%d %H:%M:%S'))

 

datetime

import datetime

print(datetime.MAXYEAR)#9999

print(datetime.MINYEAR)#1

today = datetime.date.today()

print(today)#2021-02-03

print("當前日期:",today)  # 當前日期: 2021-02-03

print("當前日期(字符串):",today.ctime())   # 返回日期的字符串 Wed Feb  3 00:00:00 2021

print("時間元組信息:",today.timetuple())   # 當前日期的時間元組信息 time.struct_time(tm_year=2021, tm_mon=2, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=34, tm_isdst=-1)

print("年:",today.year)   # 返回today對象的年份 2021

print("月:",today.month)  # 返回today對象的月份 2

print("日:",today.day)   # 返回today對象的日 3

print("星期:",today.weekday())  # 0代表星期一,類推 2

print("公曆序數:",today.toordinal())  # 返回公曆日期的序數  737824

print("年/周數/星期:",today.isocalendar())   # 返回一個元組:一年中的第幾周,星期幾 (2021, 5, 3)

#轉換

print(datetime.date.fromordinal(today.toordinal())) #2021-02-03

import time

print(datetime.datetime.fromtimestamp(time.time()))#2021-02-03 11:45:29.618683

#顯示

print(today)# 2020-12-26  默認連接符號是-

print(today.strftime("%Y/%m/%d"))  # 指定連接符# 2020/12/26

print(today.strftime("%Y:%m:%d"))# 2020:12:26

print(today.strftime("%Y/%m/%d %H:%M:%S"))  # 轉化為具體的時間# 2020/12/26 00:00:00

#修改

d1 = datetime.date(2021, 2, 3)

d2 = d1.replace(2020, 1, 2)

d3 = d2.replace(year=2022, month=3, day=4)

print(d1, d2, d3)#2021-02-03 2020-01-02 2022-03-04

 

#time類也是要生成time對象,包含hour、minute、second、microsecond

t = datetime.time(10,20,30,40)

print(t.hour)  # 時分秒10

print(t.minute)#20

print(t.second)#30

print(t.microsecond)  # 微秒40

 

#datetime類包含date類和time類的全部信息

print(datetime.date.today())#2021-02-03

print(datetime.datetime.now())#2021-02-03 11:54:26.797584

print(datetime.datetime.utcnow())# 返回當前UTC日期和時間的datetime對象#2021-02-03 03:54:59.721564

print(datetime.datetime.fromtimestamp(1697302830))  # 時間戳的datetime對象#2023-10-15 01:00:30

print(datetime.date.fromordinal(699000))#1914-10-19

print(datetime.datetime.combine(datetime.date(2020,12,25), datetime.time(11,22,54)))  # 拼接日期和時間#2020-12-25 11:22:54

print(datetime.datetime.strptime("2020-12-25","%Y-%m-%d"))#2020-12-25 00:00:00

 

d = datetime.datetime(2020,12,25,11,24,23)

print(d.date())#2020-12-25

print(d.time())#11:24:23

print(d.timetz())  # 從datetime中拆分出具體時區屬性的time#11:24:23

print(d.replace(year=2021,month=1))  # 替換2021-01-25 11:24:23

print(d.timetuple())  # 時間元組time.struct_time(tm_year=2020, tm_mon=12, tm_mday=25, tm_hour=11, tm_min=24, tm_sec=23, tm_wday=4, tm_yday=360, tm_isdst=-1)

print(d.toordinal())  # 和date.toordinal一樣737784

print(d.weekday())#4

print(d.isoweekday())#5

print(d.isocalendar())#(2020, 52, 5)

print(d.isoformat())#2020-12-25T11:24:23

print(d.strftime("%Y-%m-%d :%H:%M:%S")) #2020-12-25 :11:24:23

 

#timedelta對象表示的是一個時間段,即兩個日期date或者日期時間datetime之間的差;支持參數:weeks、days、hours、minutes、seconds、milliseconds、microseconds

print(datetime.date.today() + datetime.timedelta(days=7))#2021-02-10

print(datetime.datetime.now() + datetime.timedelta(hours=7))#2021-02-03 21:39:50.573007

print(datetime.datetime.now() + datetime.timedelta(minutes=5))#2021-02-03 14:46:09.220255

print(datetime.datetime.now() + datetime.timedelta(weeks=5))#2021-03-10 14:41:46.380094

print(datetime.datetime.now() - datetime.timedelta(weeks=5))#2020-12-30 14:42:03.658650

print(datetime.datetime(2021,2,3) - datetime.datetime(2021,1,21,20,11,30))#12 days, 3:48:30

print((datetime.datetime(2021,2,3) - datetime.datetime(2021,1,21,20,11,30)).days)#12

print((datetime.datetime(2021,2,3) - datetime.datetime(2021,1,21,20,11,30)).seconds)#13710

print((datetime.datetime(2021,2,3) - datetime.datetime(2021,1,21,20,11,30)).total_seconds())#1050510.0

 

#tzinfo本地時間指的是我們系統本身設定時區的時間。datetime類有一個時區屬性tzinfo。tzinfo是一個關於時區信息的類,是一個抽象的基類,不能直接被實例化來使用。它的默認值是None。

tz_utc_8 = datetime.timezone(datetime.timedelta(hours=8))

print(tz_utc_8)#UTC+08:00

now = datetime.datetime.now()

print(now)#2021-02-03 14:53:35.939091

new_time = now.replace(tzinfo=tz_utc_8)

print(new_time)#2021-02-03 14:54:34.387381+08:00

 

#我們先通過utcnow()獲取到當前的UTC時間

utc_now = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc)  # 指定utc時區

print(utc_now)#2021-02-03 06:56:03.336650+00:00

#通過astimezone()將時區指定為我們想轉換的時區,比如東八區(北京時間):# 通過astimezone切換到東八區

beijing = utc_now.astimezone(datetime.timezone(datetime.timedelta(hours=8)))

print(beijing)#2021-02-03 14:57:04.154792+08:00

#用同樣的方法切到東九區,東京時間:# UTC時區切換到東九區:東京時間

tokyo = utc_now.astimezone(datetime.timezone(datetime.timedelta(hours=9)))

print(tokyo)#2021-02-03 15:58:31.676993+09:00

#還可以直接從北京時間切換到東京時間:# 北京時間(東八區)直接切換到東京時間(東九區)

tokyo_new = beijing.astimezone(datetime.timezone(datetime.timedelta(hours=9)))

print(tokyo_new)#2021-02-03 15:58:31.676993+09:00

 

 

 

 

 

#時間戳轉成日期:時間戳轉成具體時間,我們需要兩個函數:time.localtime:將時間戳轉成時間元組形式time.strftime:將時間元組數據轉成我們需要的形式

import time

a = time.time()

print(a)#1612335710.4596128

b = time.localtime(1612335710.4596128)

print(b)#time.struct_time(tm_year=2021, tm_mon=2, tm_mday=3, tm_hour=15, tm_min=1, tm_sec=50, tm_wday=2, tm_yday=34, tm_isdst=0)

print(time.strftime("%Y-%m-%d %H:%M:%S", b))#2021-02-03 15:01:50

#不想指定具體的格式,只想獲取時間戳對應的時間,直接通過time.ctime即可:

print(time.ctime(1612335710.4596128))#Wed Feb  3 15:01:50 2021

 

#日期時間轉成時間戳格式,我們需要使用兩個方法:strptime():將時間轉換成時間數組mktime():將時間數組轉換成時間戳

date = "2020-12-26 11:45:34"

# 1、時間字符串轉成時間數組形式

date_array = time.strptime(date, "%Y-%m-%d %H:%M:%S")

# 2、查看時間數組數據

print("時間數組:", date_array)#時間數組: time.struct_time(tm_year=2020, tm_mon=12, tm_mday=26, tm_hour=11, tm_min=45, tm_sec=34, tm_wday=5, tm_yday=361, tm_isdst=-1)

# 3、mktime時間數組轉成時間戳

print(time.mktime(date_array))#1608954334.0

 

#格式化時間strptime():將時間轉換成時間數組strftime():重新格式化時間

old = "2020-12-12 12:28:45"

# 1、轉換成時間數組

time_array = time.strptime(old, "%Y-%m-%d %H:%M:%S")

# 2、轉換成新的時間格式(20201212-20:28:54)

new = time.strftime("%Y%m%d-%H:%M:%S",time_array)  # 指定顯示格式

print("原格式時間:",old)#原格式時間: 2020-12-12 12:28:45

print("新格式時間:",new)#新格式時間: 20201212-12:28:45

 

#指定格式獲取當前時間:time.time():獲取當前時間,time.localtime():轉成時間元組,time.strftime():重新格式化時間

# 1、時間戳

old_time = time.time()

# 2、時間元組

time_array = time.localtime(old_time)

# 3、指定格式輸出

new_time = time.strftime("%Y/%m/%d %H:%M:%S", time_array)

print(new_time)#2021/02/03 15:10:20

 

 

 

相關焦點

  • Python 中的時間處理
    python中處理時間的模塊有三個,datetime, time,calendar
  • python中的時間處理
    python中處理時間的模塊有三個,datetime, time,calendar,融匯貫通三個模塊,才能隨心所欲地用python
  • Python時間運算的詳細機制初探討
    博客地址:http://coderselftrain.com/archives/本篇共2部分,上篇我們初步探討Python時間運算的機制,下篇為一句話快速運用Python的datetime進行時間運算的技巧。
  • Python 日期和時間
    /usr/bin/python# -*- coding: UTF-8 -*- import time # 引入time模塊 ticks = time.time()print "當前時間戳為:", ticks以上實例輸出結果:當前時間戳為: 1459994552.51時間戳單位最適於做日期運算
  • 用Python處理時間日期字符串的小結
    比較常見的就是解析syslog產生的日誌:需要解析字符串獲知日誌產生的時間。用到的地方挺多的,值得記錄一下。12 小時制顯示,用兩位表示) (01..12)   %M 分鐘數(用兩位表示) (00..59)   %S  秒數(用兩位表示)(00..60)   %j 本年從第1天開始計數到當天的天數   %w 星期數,0-6之間(0是周日)   %W 當天屬於本年的第幾周,周一作為一周的第一天進行計算   %x 按照 (mm/dd/yy) 格式顯示當前日期   %X 按照 (%H:%M:%S) 格式顯示當前時間
  • python中的時間處理大總結
    https://www.jianshu.com/p/a035a564b248python中處理時間的模塊有三個,datetime
  • 學習python需要多長時間?你知道嗎?
    最近很多人問我:學習python開發技術需要多長時間?Python培訓班的學習周期通常為4-6個月,不同機構中基礎不同的學生的學習周期可能會略有不同,學習Python開發並非易事,如果沒有老師的指導,您還將遇到各種問題。
  • stata調用python爬取時間數據——借他山之石以攻玉
    該功能使得,我們可以先利用python爬取數據,然後再利用用戶所熟悉的stata去處理數據,因為stata在處理數據方面具有一定的優勢。那麼今天我們就來看看,怎樣利用stata調用python爬取數據,再用stata進行處理?今天試爬的數據是巨潮網上的預約年報的披露時間數據。
  • python 時間模塊 time datetime calendar複習與比較
    今天針對python庫自帶的三個時間模塊進行複習。。。。time模塊time模塊提供各種操作時間的函數由於time模塊是python自帶的,所以只需要簡單的import time就ok了獲取時間戳time.time()函數可以用來獲取當前時間的時間戳。
  • 【Python基礎】python使用python-docx操作word
    1、python-docx庫介紹該模塊兒可以創建、修改Word(.docx)文件;python-docx使用官網:python-docx官網我們在安裝此模塊兒使用的是pip install python-docx,但是在導入的時候是import docx;2、Python讀取Word文檔內容注意:每進行一個操作,必須保存一下,否則等於白做;1)word文檔結構介紹在這裡插入圖片描述2)python-docx
  • 不一定會的Python處理時間格式並計算時間差值
    問題群友提問:請問用python語言,怎麼求這個故障時長?
  • 每個python人都離不開的12個python庫
    如果說python能取得今天的成就,一方面是它簡介的語法,更重要的一方面就是它豐富的第三方庫,可以毫不誇張的說,只要你能想到的任何一個功能模塊,都有對應的python庫,可以說正是因為有了豐富的python庫,python才發展得如此迅速,下面我們來看看python人最常用的20個python
  • python入門
    --Yves Hilpisch 《Python for Finance》發現近期學習python的人越來越多了,最近也有人問我有沒有啥課程或者書推薦的。我自己還是側重數據計算和在金融中的應用,系統管理、web開發等沒做過。我當年也是新手入門,自己搜索嘗試,買了很多的書,也在網上下載了很多資料。
  • python時間序列平穩性檢驗專題及常見問題 - CSDN
    在做時間序列分析時,我們經常要對時間序列進行平穩性檢驗,而我們常用的軟體是SPSS或SAS,但實際上python也可以用來做平穩性檢驗,而且效果也非常好,今天筆者就講解一下如何用python來做時間序列的平穩性檢驗。首先我們還是來簡單介紹一下平穩性檢驗的相關概念。圖1.
  • Python 性能優化
    python為什麼性能差:當我們提到一門程式語言的效率時:通常有兩層意思,第一是開發效率,這是對程式設計師而言,完成編碼所需要的時間;另一個是運行效率,這是對計算機而言,完成計算任務所需要的時間。編碼效率和運行效率往往是魚與熊掌的關係,是很難同時兼顧的。
  • python-時間系列型圖表-量化波形圖
    >import numpy as npimport matplotlib.pyplot as pltfrom matplotlib import cm,colorsfrom matplotlib.pyplot import figure, show, rc#排序前df=pd.read_csv('d:/python
  • python學習之三種等待時間
    python學習之三種等待時間1,強制等待:不論頁面是否加載完成,都要等待指定時間後才執行下一步,單位s,time.sleep(指定時間)2,隱形等待:頁面加載完成則執行下一步,沒有加載完成,則繼續等待直到指定時間後在執行下一步
  • 【Python雜貨鋪】速學python基礎
    「人生苦短,我學python」是編程屆的名言。用python寫小腳本的便捷性,讓很多其他語言的學習者把python當作輔助語言。擁有了某一個語言的功底,再來學習另外一種語言應該是十分快速的。編程理念都十分相似,只是看看語言的差異性。帶著Java的基礎,學習Python,準備上路了。
  • 介紹一下什麼是python(瘋狂Python)
    後續我會不斷努力的更新關於學英語的一些文章,同時,我也會不斷更新新的知識(譬如:程式語言:python,資料庫:mysql,Linux系統的一些操作等等,與大家一起學習進步)。進入正題,大家都應該聽說過Python這門程式語言吧,它在程式語言中的排名不斷的再提升,之所以這麼受歡迎,是因為它簡單,易學。
  • 「數字時鐘」案例學習python函數及時間庫
    而時間庫則是python最常用的一個庫,今天樹哥通過繪製一個「數字時鐘」來講解函數和時間庫相關的知識。一、案例分析案例:題目:繪製一個是數字時鐘,要求數值時鐘的時間與現實生活的時間相符。這就是需要調用時間的庫,採用一個time.localtime()的時間函數就可以把當前時間調取出來。當然,這個時間函數包含年、月、日、時、分、秒等等諸多信息,我們只需要通過格式取出 「時、分、秒」即可。
  • 怎麼通過Python掙外快,通過Python掙外快的幾種方式
    怎麼通過Python掙外快,通過Python掙外快的幾種方式 當今收入低於5000的人至少佔到40%,完全不夠養活一家人,而且很多小夥伴其實空餘時間比較多,特別是大學生,零花錢又不夠花,都想靠業餘時間找點輕鬆的活增加收入,但是卻沒門路,現在的社會中,只要掌握一個技能,走到哪裡,都不怕