python中datetime是比较常用的,平时用起来也没什么问题,但是今天2020年2月29日服务器却开始报错了,这里有个平时难以注意的坑

服务器上跑的是新浪网的爬虫,抓取的页面信息中带有日期 XX月XX日,需要strfptime转化一下,型如

import datetime

datetime.datetime.strptime('(02月29日 10:47)', '(%m月%d日 %H:%M)')

这里会报:ValueError: day is out of range for month

debug一下可以发现,datetime在处理未提供年份的日期时候,是按照如下图所示的逻辑处理的

注意断点处,将默认年设置为了1900,至于原因官方也在注释中声明了: ensure that February 29th is smaller than March 1st,可惜的是1900是平年,进而导致1900-02-29转化datetime错误。

这种问题,没有通用的处理方法,主要是业务上限制这个时间的使用,如果业务数据都是今年的那么直接获取当前年份传进去即可,如果处理老数据再涉及到时间前后对比的话就麻烦了,用当前时间不行,不用当前时间又会有影响,只能针对性的对具体业务场景写一些针对性的逻辑来处理。

python闰年多一天_记一个 python datetime 闰年问题相关推荐

  1. 苹果笔记本python开发第一个程序_第一个Python程序【文章来自老男孩】

    首先我们打开python 交互式解释器, 执行如下命令: Python 3.5.1+ (default, Mar 30 2016, 22:46:26) [GCC 5.3.1 20160330] on ...

  2. python的程序入口地址_第一个Python程序

    在写代码之前,请千万不要用"复制"-"粘贴"把代码从页面粘贴到你自己的电脑上.写程序也讲究一个感觉,你需要一个字母一个字母地把代码自己敲进去,在敲代码的过程中, ...

  3. python类的成员函数_注入一个python类成员函数

    你在这里要做的是Child2.foo用self不是a的方法调用未绑定的方法Child2. 这是非法的,Python 2将检测到并提出一个TypeError解释错误的地方:TypeError: unbo ...

  4. python 程序块 挂掉的服务_写一个python的服务监控程序

    写一个python的服务监控程序 前言: Redhat下安装Python2.7 rhel6.4自带的是2.6, 发现有的机器是python2.4. 到python站点下载源码.解压到Redhat上.然 ...

  5. python hello world程序代码_第一个Python程序——hello world

    helloWorld 一直都是每一门语言经典的第一课, 就是使用那一种语言输出 HelloWorld 的字符串 下面 ,就用 python.在终端里面输出 HelloWorld 代码非常简单,只需要一 ...

  6. python turtle绕原点旋转_每天一个Python小技巧,用Python 画个多啦A梦,小猪佩奇,文末还有Python入门学习视频

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

  7. python判断密码是否正确_第一个python程序-判断登陆用户名和密码是否正确

    #setencoding=utf-8#用户名和密码输入正确,则登陆成功 #用户名正确密码错误,只再输入密码,有3次机会 #错误3次,则把用户名放入lock中 import os,sys #存放用户名和 ...

  8. python去掉每行前面_第一个python去掉行号

    (根据我在博客园上连载的四篇文章整理,见http://yanxy.cnblogs.com/,转载请注明出处)近两天内的目标是在我博的每个栏目发一篇文章,先都占个坑再说,空着不好看:) <程序设计 ...

  9. python统计大小写字母个数_编写一个Python函数,它接受一个字符串并计算大写字母和小写字母的数量...

    问题why this one doesn't work? 除了语法错误和运行时错误之外,您的代码逻辑还有很长的路要走.你实际上没有按问题所问的去做.您似乎正在尝试计算单个字符中的大写字符数.那是不正确 ...

最新文章

  1. js作用域链以及全局变量和局部变量
  2. 设计模式--策略(Strategy)模式
  3. ACL 2021 | 结构化知识蒸馏方法
  4. sqlmap源码阅读_listTamperingFunctions和_setTamperingFunctions
  5. SPFA ----模板 O(kE) (k一般不超过2)
  6. java document to xml_Java Document.asXML方法代碼示例
  7. 中央气象台天气预报api调用
  8. Django - 路由系统
  9. 22-1图的遍历的源代码
  10. PHP去掉Bom标记
  11. Archlinux桌面配置指南
  12. Java集合源码剖析
  13. unicode 特殊字符表 特殊符号
  14. 中美科学家造出“人-猴胚胎”,这会是魔幻剧情的开端吗?
  15. VUE基础API总结
  16. hdu6438(优先队列)
  17. matlab点坐标 一次插值,[转载]坐标转换和插值之matlab程序
  18. SCA可达性分析基础知识普及
  19. python3正则表达式替换_在Python 3中加速数百万的正则表达式替换
  20. echarts 江苏省地图各市级坐标点

热门文章

  1. mysql外部排序_深入浅出MySQL优先队列(你一定会踩到的order by limit 问题)
  2. 怎么查看计算机的系统内存大小,Windows10系统怎么查看电脑内存大小
  3. [分布式训练] 单机多卡的正确打开方式:PyTorch
  4. linux /proc 详解
  5. docker卸载 windows版本_DevOps系列 006 - Docker安装
  6. python面试题百度云下载_分享三道Python经典面试题
  7. c语言如何判断是否是子序列,leetcode392(判断子序列)--C语言实现
  8. idea 远程调试_我的天!你竟然不会用IDEA远程调试Tomcat...
  9. 页面错误!请稍后再试_微信内嵌H5页面授权和分享
  10. MySQL为什么要set names