python将日期转化为星期,python datetime时区转换

  python将日期转化为星期,python datetime时区转换

  星期是一种日常生活中不常使用的日历系统。它通常用于政府和企业的财政年度或学校日历。本文介绍了如何使用Python语言实现周历与时间的转换。有兴趣的可以了解一下。

  00-1010的前言基本介绍了使用datetime类格式进行转换的问题。正确的方法是使用isocalendar将日期转换成周历,使用fromisocalendar将周历转换成python代码。

  

目录

  日历(ISO国际标准)

  推出在线周日历(2022年)

  

前言

  在开发过程中,有些总结咨询需要按周统计,下面就介绍一下如何进行相互换算。

  

基本介绍

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

  Strptime方法可以将字符串转换成时间。

  在“%Y,%W,%w”中,“%Y”表示年份,“%W”表示星期,“%w”表示星期几。

  从日期时间导入日期时间

  #时间到周日历

  a=datetime.now()。strftime(%Y,%W,%w )

  打印(一)# 2022,28,3

  #每周日历周转时间

  a=datetime.strptime(2022,12,3 , %Y,%W,%w )

  打印(a) # 2022-03-23 00:00:00

  

使用datetime类格式化进行转换

  看起来上面的问题已经解决了,但是问题在年初和年底。

  以2021年12月和2022年1月为例。

  2021年12月

  周周一周二周三周四周五周六周日481234549678910111250131415161718195120212232425265227282930312022年1月

  周周一周二周三周四周五周六周日521213456789210111

  213141516317181920212223424252627282930531

  

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周日历与时间互换的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • python将字符串转换成日期,python 字符串转换为日期
  • python将字符串转换成日期,python 字符串转换为日期,Python如何将字符串转换为日期
  • python将字符串转换为数字型,python中数字字符和数字值有何不同,如何转换
  • python将两个一维数组转化为二维数组,matlab把二维数组转为三维数组
  • python将文本转为数组,python读取txt文件为数组
  • python将一个正整数分解成质因数,用python分解质因数
  • python单位转换编程英寸厘米,python将8厘米转换为以英寸为单位的长度并输出
  • python将列表中指定元素修改,python 替换列表中的元素
  • Python将字符串分割,python中把字符串分割成单个字符
  • python将数字转换为日期,python excel写入日期变数字
  • Python读取文件名写入Excel,python将结果写入excel文件
  • 用python将字符串进行反转,python中字符串反转函数
  • python 数字类型和字符串类型的相互转换,python将字符串类型转换为数字
  • Python读取文件名写入Excel,python将数据写入excel指定单元格
  • python中将字符串转化为数字,Python将字符串转为数字
  • 留言与评论(共有 条评论)
       
    验证码: