广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现周日历与时间相互转换
  • 980
分享到

Python实现周日历与时间相互转换

2024-04-02 19:04:59 980人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录前言基本介绍使用datetime类格式化进行转换问题正确方法使用isocalendar将日期转换为周日历使用 fromisocalendar 将周日历转换为日期python代码前

前言

周日历(ISO国际标准)

介绍在线周日历(2022年)

基本介绍

开发过程中,有些汇总咨询需要以周为单位统计,所以介绍下如何进行相互转换。

使用datetime类格式化进行转换

strftime 方法可以将时间转换为字符串

strptime 方法可以将字符串转为时间

"%Y,%W,%w"中,"%Y"代表年份,"%W"代表周,"%w"代表一周内的第几天

from datetime import datetime

# 时间转周日历
a = datetime.now().strftime("%Y,%W,%w")
print(a)    # 2022,28,3

# 周日历转时间
a = datetime.strptime("2022,12,3","%Y,%W,%w")
print(a)    # 2022-03-23 00:00:00

问题

以上貌似问题解决了,但是问题出在年初和年尾

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

2021年12月

周数周一周二周三周四周五周六周日
48  12345
496789101112
5013141516171819
5120212223242526
522728293031  

2022年1月

周数周一周二周三周四周五周六周日
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日应该归为2021年的最后一周

使用strftime方法格式化后为2022年第0月,所以这是有问题的

正确方法

使用isocalendar将日期转换为周日历

datetime类型的时间直接调用 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 将周日历转换为日期

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]:
    """时间转换为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周日历转换为时间

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

    Returns:
        datetime: 时间
    """
    year, week, weekday = isoweek
    return datetime.fromisocalendar(year, week, weekday)

以上就是Python实现周日历与时间相互转换的详细内容,更多关于Python周日历与时间互换的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python实现周日历与时间相互转换

本文链接: https://www.lsjlt.com/news/119326.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现周日历与时间相互转换
    目录前言基本介绍使用datetime类格式化进行转换问题正确方法使用isocalendar将日期转换为周日历使用 fromisocalendar 将周日历转换为日期python代码前...
    99+
    2022-11-11
  • 【python】时间与时间戳互相转换
    全文一览 一、时间戳转换为时间1.0 获取时间戳1.1 datetime 法1.2 time 法 二、时间转化为时间戳 时间戳 : ,1683876941.119018 时间格式: ...
    99+
    2023-09-02
    python 数据结构 开发语言
  • python 时间相互转换
    文章目录 写在前面datetime转timestampdatetime转时间字符串timestamp转datetimetimestamp转时间字符串时间字符串转datetime时间字符串转timest...
    99+
    2023-09-09
    python 开发语言 数据分析
  • mysql UNIX时间戳与日期的相互转换
    UNIX时间戳转换为日期用函数: FROM_UNIXTIME()select FROM_UNIXTIME(1156219870); 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP(...
    99+
    2022-10-18
  • php实现农历公历日期的相互转换
    农历(Lunar calendar)和公历(Gregorian calendar)是两种不同的日历系统。公历是基于太阳和地球的运动来计算时间的,而农历是基于月亮的运动来计算时间的。 农历中的月份是根据月亮的相对位置来确定的,而公历中的月份...
    99+
    2023-08-31
    php 开发语言 Powered by 金山文档
  • PYTHON时间与字符串的互相转换
    这篇文章主要讲解了“PYTHON时间与字符串的互相转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PYTHON时间与字符串的互相转换”吧!1、字符串转换成时间[in]from d...
    99+
    2023-06-02
  • Java日期时间以及日期相互转换
    Java日期时间,以及相互转化,供大家参考,具体内容如下package com.study.string;import java.text.ParseException;import java.text.SimpleDateFormat;i...
    99+
    2023-05-31
    java 日期 时间
  • java时间戳与日期相互转换工具详解
    本文为大家分享了java日期与时间戳相互转换大全,供大家参考,具体内容如下package com.crm.util; import java.math.BigDecimal; import java.text.DecimalFormat;...
    99+
    2023-05-30
    java 时间戳 日期
  • php日历之儒略日计数与法国共和历法的日期间怎么相互转换
    这篇文章主要介绍了php日历之儒略日计数与法国共和历法的日期间怎么相互转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。儒略日(Julian Day)是在儒略周期内以连续的日...
    99+
    2023-06-20
  • 聊聊php中时间戳和年月日相互转换
    PHP是一种非常流行的服务器端脚本语言,广泛应用于开发和维护网站。在网站开发过程中,经常需要将时间戳和年月日相互转换。本文将介绍如何使用PHP实现这种转换过程。一、获取当前时间戳在PHP中,使用time()函数可以获取当前的时间戳。时间戳是...
    99+
    2023-05-14
  • 怎么将Java与C#时间进行互相转换
    这篇文章主要介绍了怎么将Java与C#时间进行互相转换的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么将Java与C#时间进行互相转换文章都会有所收获,下面我们一起来看看吧。JAVA中的日期计算方法JAVA统...
    99+
    2023-07-04
  • Python全角与半角间怎么相互转换
    这篇文章主要介绍了Python全角与半角间怎么相互转换的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python全角与半角间怎么相互转换文章都会有所收获,下面我们一起来看看吧。1.应用领域:全角和半角的转换通常...
    99+
    2023-06-29
  • python 实现docx与doc文件的互相转换
    因文件格式要求,需要将docx 与doc文件相互转换,特寻找python代码,与大家共分享 from win32com import client #转换doc为docx def...
    99+
    2022-11-11
  • Java实现的时间戳与date对象相互转换功能示例
    本文实例讲述了Java实现的时间戳与date对象相互转换功能。分享给大家供大家参考,具体如下:一.日期转换为时间戳public long getTimestamp() throws ParseException{ Date date1 = ...
    99+
    2023-05-31
    java 时间戳 date对象
  • Python时间戳与日期格式之间相互转化的详细教程
    目录绪论一、获取当前日期,转为10位或13位时间戳二、将10位或13位时间戳转为日期格式(年-月-日 时-分-秒)总结绪论 java默认精度是毫秒级别的,生成的时间戳是13位,而py...
    99+
    2022-11-11
  • C语言标准时间与秒单位相互转换
    目录1. 时间转换-秒与标准时间的转换2. 时间转换-标准时间转秒前言: 这篇文章介绍 标准时间与秒单位,秒单位与标准时间的转换方式,这份代码一般用在嵌入式单片机里比较多,比如:设置...
    99+
    2022-11-13
  • python label与one-hot之间的互相转换方式
    目录label与one-hot之间的互相转换label 转 one-hotone-hot 转labellabel:one-hot 与 标量转化标量 转化为 one-hot 向量one...
    99+
    2023-02-01
    python label python one-hot label与one-hot互相转换
  • JavaBeanMap实现Bean与Map的相互转换
    目录bean转Mapmap转BeanbeanMap实现以及高性能的原因net.sf.cglib.beans.BeanMap用法 bean转Map @Data public class...
    99+
    2022-11-21
    BeanMap Bean与Map的相互转换 BeanMap Bean与Map转换
  • Canvas与Image怎么实现互相转换
    这篇文章将为大家详细讲解有关Canvas与Image怎么实现互相转换,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。转换 Image为 Canvas 要把图片...
    99+
    2022-10-19
  • ESM与CJS互相转换怎么实现
    本篇内容介绍了“ESM与CJS互相转换怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正文ESM 和 CJS 是我们常用的模块格式,两...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作