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

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

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

前言

周日歷(ISO國際標(biāo)準(zhǔn))

介紹在線周日歷(2022年)

基本介紹

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

使用datetime類格式化進(jìn)行轉(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標(biāo)準(zhǔn),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實(shí)現(xiàn)周日歷與時間相互轉(zhuǎn)換的詳細(xì)內(nèi)容,更多關(guān)于Python周日歷與時間互換的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    python中decimal模塊的用法

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

最新評論

桦南县| 宜宾县| 黔西| 穆棱市| 沛县| 恩施市| 泰州市| 枞阳县| 常宁市| 新巴尔虎右旗| 额尔古纳市| 杭锦旗| 巴楚县| 阿克苏市| 和静县| 浦县| 无锡市| 丰台区| 双牌县| 洪洞县| 灵台县| 贵州省| 绍兴市| 堆龙德庆县| 平顶山市| 巫山县| 鸡泽县| 张家界市| 天祝| 广水市| 汉中市| 邯郸市| 寿宁县| 屏边| 黑山县| 广元市| 共和县| 太谷县| 阜南县| 永仁县| 舒兰市|