最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)周日歷與時間相互轉(zhuǎn)換

 更新時間:2022年07月14日 10:13:57   作者:萬百入年許老  
周日歷是日常生活中不常用到的歷法系統(tǒng),一般用于政府、商務(wù)的會計年度或者學校教學日歷中。本文為大家介紹了如何利用Python語言實現(xiàn)周日歷與時間相互轉(zhuǎn)換,感興趣的可以學習一下

前言

周日歷(ISO國際標準)

介紹在線周日歷(2022年)

基本介紹

在開發(fā)過程中,有些匯總咨詢需要以周為單位統(tǒng)計,所以介紹下如何進行相互轉(zhuǎn)換。

使用datetime類格式化進行轉(zhuǎn)換

strftime 方法可以將時間轉(zhuǎn)換為字符串

strptime 方法可以將字符串轉(zhuǎn)為時間

"%Y,%W,%w"中,"%Y"代表年份,"%W"代表周,"%w"代表一周內(nèi)的第幾天

from datetime import datetime

# 時間轉(zhuǎn)周日歷
a = datetime.now().strftime("%Y,%W,%w")
print(a)    # 2022,28,3

# 周日歷轉(zhuǎn)時間
a = datetime.strptime("2022,12,3","%Y,%W,%w")
print(a)    # 2022-03-23 00:00:00

問題

以上貌似問題解決了,但是問題出在年初和年尾

以2021年12月,2022年1月舉例

2021年12月

周數(shù)周一周二周三周四周五周六周日
48  12345
496789101112
5013141516171819
5120212223242526
522728293031  

2022年1月

周數(shù)周一周二周三周四周五周六周日
52     12
13456789
210111213141516
317181920212223
424252627282930
531      
from datetime import datetime

a = datetime.strptime("2021-12-31", "%Y-%m-%d")
print(a.strftime("%Y,%W,%w"))   # 2021,52,5

a = datetime.strptime("2022-01-01", "%Y-%m-%d")
print(a.strftime("%Y,%W,%w"))   # 2022,00,6

按iso標準,2022年1月1日應(yīng)該歸為2021年的最后一周

使用strftime方法格式化后為2022年第0月,所以這是有問題的

正確方法

使用isocalendar將日期轉(zhuǎn)換為周日歷

datetime類型的時間直接調(diào)用 isocalendar 方法

from datetime import datetime


def str_to_time(time_str: str) -> datetime:
    return datetime.strptime(time_str, "%Y-%m-%d")


time_list = [
    "2021-12-30",
    "2021-12-31",
    "2022-01-01",
    "2022-01-02",
    "2022-01-03",
]

for i in time_list:
    t = str_to_time(i)
    iso = t.isocalendar()
    print(i, " > ", f"{iso.year},{iso.week},{iso.weekday}")

# 2021-12-30  >  2021,52,4
# 2021-12-31  >  2021,52,5
# 2022-01-01  >  2021,52,6
# 2022-01-02  >  2021,52,7
# 2022-01-03  >  2022,1,1

使用 fromisocalendar 將周日歷轉(zhuǎn)換為日期

from datetime import datetime

time_list = (
    (2021, 52, 4),
    (2021, 52, 5),
    (2021, 52, 6),
    (2021, 52, 7),
    (2022, 1, 1),
)
for year, week, weekday in time_list:
    t = datetime.fromisocalendar(year, week, weekday)
    print(f"{year},{week},{weekday}", " > ", t)

# 2021,52,4  >  2021-12-30 00:00:00
# 2021,52,5  >  2021-12-31 00:00:00
# 2021,52,6  >  2022-01-01 00:00:00
# 2021,52,7  >  2022-01-02 00:00:00
# 2022,1,1  >  2022-01-03 00:00:00

python代碼

from datetime import datetime


def datetime_to_isoweek(datetime_: datetime) -> tuple[int, int, int]:
    """時間轉(zhuǎn)換為iso周日歷

    Args:
        datetime_ (datetime): 時間

    Returns:
        tuple[int,int,int]: year,week,weekday
    """
    iso = datetime_.isocalendar()
    return iso.year, iso.week, iso.weekday


def isoweek_to_datetime(isoweek: tuple[int, int, int]) -> datetime:
    """iso周日歷轉(zhuǎn)換為時間

    Args:
        isoweek (tuple[int,int,int]): year,week,weekday

    Returns:
        datetime: 時間
    """
    year, week, weekday = isoweek
    return datetime.fromisocalendar(year, week, weekday)

以上就是Python實現(xiàn)周日歷與時間相互轉(zhuǎn)換的詳細內(nèi)容,更多關(guān)于Python周日歷與時間互換的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于python實現(xiàn)動態(tài)煙霧效果

    基于python實現(xiàn)動態(tài)煙霧效果

    動態(tài)煙霧效果常用于游戲和動畫中,為場景增添 逼真的視覺效果,在這篇博客中,我們將使用Python和Pygame庫來創(chuàng)建一個逼真的煙霧動畫效果,感興趣的小伙伴跟著小編一起來看看吧
    2024-09-09
  • Python中os模塊的使用及文件對象的讀寫詳解

    Python中os模塊的使用及文件對象的讀寫詳解

    這篇文章主要介紹了Python中os模塊的使用及文件對象的讀寫詳解,Python?open()?方法用于打開一個文件,并創(chuàng)建返回文件對象,在對文件進行處理過程都需要使用到這個函數(shù),如果該文件無法被打開,會拋出?OSError,需要的朋友可以參考下
    2023-08-08
  • 詳解Python修復遙感影像條帶的兩種方式

    詳解Python修復遙感影像條帶的兩種方式

    這篇文章主要介紹了詳解Python修復遙感影像條帶的兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 對pyqt5中QTabWidget的相關(guān)操作詳解

    對pyqt5中QTabWidget的相關(guān)操作詳解

    今天小編就為大家分享一篇對pyqt5中QTabWidget的相關(guān)操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python、PyCharm安裝及使用方法(Mac版)詳解

    Python、PyCharm安裝及使用方法(Mac版)詳解

    這篇文章主要為大家詳細介紹了Mac版的Python、PyCharm安裝及使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 如何將Python徹底卸載的三種方法

    如何將Python徹底卸載的三種方法

    通常我們在一些軟件的使用上有碰壁,第一反應(yīng)就是卸載重裝,所以有小伙伴就問我Python怎么卸載才能徹底卸載干凈,今天這篇文章,小編就來教大家如何徹底卸載Python,需要的朋友可以參考下
    2025-04-04
  • pandas添加行的兩種實現(xiàn)方式

    pandas添加行的兩種實現(xiàn)方式

    本文主要介紹了pandas添加行的兩種實現(xiàn)方式,主要是df.append()和df.concat()兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • Python中._pth文件的作用及說明

    Python中._pth文件的作用及說明

    這篇文章主要介紹了Python中._pth文件的作用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python實現(xiàn)列表轉(zhuǎn)換成字典數(shù)據(jù)結(jié)構(gòu)的方法

    Python實現(xiàn)列表轉(zhuǎn)換成字典數(shù)據(jù)結(jié)構(gòu)的方法

    這篇文章主要介紹了Python實現(xiàn)列表轉(zhuǎn)換成字典數(shù)據(jù)結(jié)構(gòu)的方法,結(jié)合實例形式分析了Python數(shù)值類型轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下
    2016-03-03
  • python中decimal模塊的用法

    python中decimal模塊的用法

    本文主要介紹了python中decimal模塊的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02

最新評論

昌黎县| 北宁市| 临江市| 沅陵县| 航空| 晋州市| 青河县| 潼关县| 财经| 东乌| 伊通| 铜梁县| 澄迈县| 闸北区| 伊宁市| 会理县| 德兴市| 河东区| 衡阳市| 五台县| 武威市| 安宁市| 公安县| 普洱| 浠水县| 彭泽县| 阿荣旗| 金昌市| 南通市| 亚东县| 漠河县| 溆浦县| 太白县| 徐闻县| 霍州市| 筠连县| 德惠市| 文登市| 隆安县| 景泰县| 宁武县|