技术文章 > Python技术 > Python基础 > 正文

strptime参数在python3时间中如何排序?

小妮浅浅

虽然有部分小伙伴是python老手,也不可避免会在一些冷门的知识点上出错,这可对于知识点的学习上,其实是没有常见和冷门之分的。经过小编的观察发现,对于strptime参数的使用,不仅是python小白,即使是学了很久的python编程者也会在上面栽跟头,为此特意出了本篇文章提醒大家。


首先strptime的函数命名不太好, 词义模糊, 不如直接叫str2time。string是source,time是result。

strptime(string, format) method of builtins.type instance
    string, format -> new datetime parsed from a string (like time.strptime())
  #Case
 In [6]: datetime.strptime("8 May, 2019", "%d %B, %Y")                                                                         
Out[6]: datetime.datetime(2019, 5, 8, 0, 0)

本函数的工作是parse a string to produce a time object。strptime 的字面含义读起来却像是毫无意义的string to parse time或者是读成相反的含义parse time to produce a string。妥协的处理方法理解为‘string parsed’ to time。将strp当做一个组合名词即strp2time。

官方的 strptime 命名比较 str2time 的优点是存在动词 parse, 点出函数的内部逻辑需要做的核心工作是解析。将普通的字符串解析成为有实际价值和意义的时间对象。(更像是开发者提醒自己非写给API的用户)

我们可以将参数名做简单的扩展:

datetime.strptime(string, format)
#扩展为
def strptime(src_string, parsed_format) -> "dst_time_object":

这样看来strptime还是符合 source to destination的模式。

 容易混淆 string 与 format 顺序的一个直接原因是存在 re.match(pattern, str),按照module re的这个思路, 要事第一!对strptime(string, format)的处理似乎也应该将format拿到前面。

对此的理解:

 1)source to destination 是惯例, strptime(string, format)没有打破惯。

 2)regex 突破了惯例, 可能因为 consturct regex 需要花费较多脑力,而其他如time-format并不需要多少思考。(regex的所有的methods都是将构建regex-pattern作为第一个参数)

 3)处理 strptime 从字面含义去引导直觉. strptime(string, parsed-format) to a time-object

讲了这么多的长篇大论,小编还是觉得有必要再重申一遍,string在前而format再后,顺序千万不要弄错了。更多Python学习推荐:PyThon学习网教学中心


免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 Python3时间戳如何在excel中运用?
 python3时间datetime如何转换成数字?
 Python3时间戳如何应用于数学计算?
 python3时间strptime如何逆变换?
相关视频章节
 网络爬虫
 云端部署Web应用程序视频
 Web应用框架Flask和文件模板
 Web应用程序开发概述
 继承和多态
推荐视频
视频教程分类