欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

介紹在線周日歷(2022年)

基本介紹

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

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

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

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

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

from datetime import datetime

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

# 周日歷轉(zhuǎn)時(shí)間
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類型的時(shí)間直接調(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]:
    """時(shí)間轉(zhuǎn)換為iso周日歷

    Args:
        datetime_ (datetime): 時(shí)間

    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)換為時(shí)間

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

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

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

相關(guān)文章

  • Python實(shí)現(xiàn)冒泡排序算法的完整實(shí)例

    Python實(shí)現(xiàn)冒泡排序算法的完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)冒泡排序算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 解決Django migrate No changes detected 不能創(chuàng)建表的問題

    解決Django migrate No changes detected 不能創(chuàng)建表的問題

    今天小編就為大家分享一篇解決Django migrate No changes detected 不能創(chuàng)建表的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python Selenium截圖功能實(shí)現(xiàn)代碼

    Python Selenium截圖功能實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python Selenium截圖功能實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Django 查詢數(shù)據(jù)庫并返回頁面的例子

    Django 查詢數(shù)據(jù)庫并返回頁面的例子

    今天小編就為大家分享一篇Django 查詢數(shù)據(jù)庫并返回頁面的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python解析命令行參數(shù)的三種方法詳解

    python解析命令行參數(shù)的三種方法詳解

    這篇文章主要介紹了python解析命令行參數(shù)的三種方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python rsa 加密解密

    python rsa 加密解密

    本篇文章主要介紹了python rsa加密解密 (編解碼,base64編解碼)的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • Python?Setuptools的?setup.py實(shí)例詳解

    Python?Setuptools的?setup.py實(shí)例詳解

    setup.py是一個(gè)?python?文件,它的存在表明您要安裝的模塊/包可能已經(jīng)用?Setuptools?打包和分發(fā),這是分發(fā)?Python?模塊的標(biāo)準(zhǔn)。?它的目的是正確安裝軟件,本文給大家講解Python?Setuptools的?setup.py感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • Python標(biāo)準(zhǔn)庫os.path包、glob包使用實(shí)例

    Python標(biāo)準(zhǔn)庫os.path包、glob包使用實(shí)例

    這篇文章主要介紹了Python標(biāo)準(zhǔn)庫os.path包、glob包使用實(shí)例,本文直接給出代碼,代碼中有詳細(xì)注釋,需要的朋友可以參考下
    2014-11-11
  • Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例

    Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例

    這篇文章主要介紹了Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python利用psutil獲取CPU與內(nèi)存等硬件信息

    Python利用psutil獲取CPU與內(nèi)存等硬件信息

    psutil是Python的一個(gè)第三方庫,提供了各種強(qiáng)大的硬件信息查閱功能,這篇文章主要為大家介紹了如何利用psutil獲取CPU與內(nèi)存等硬件信息,需要的可以參考一下
    2023-07-07

最新評(píng)論