python的datetime.strptime_Python中的时间函数datetime.strptime()参数顺序的问题

即便是python资深用户也经常会错写datetime.strptime(string, format) ,颠倒两个参数的顺序而写成了datetime.strptime(format, string) ,与re.find(pattern, string)相混淆。

分析问题

1、datetime.strptime()

首先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

2、datetime.strftime()

容易混淆的另外一个原因是strptime的逆函数strftime。

strftime(format)

format -> strftime() style string.

In [8]: dt

Out[8]: datetime.datetime(2019, 5, 8, 0, 0)

In [9]: dt.strftime("%d %B, %Y")

Out[9]: '08 May, 2019'

strftime是time2str。

上例中datetime_obj.strftime(format)是其对象式编程的写法,由于里面只有一个format参数,因而也往往容易诱导python用户在写strptime的时候也将format写在前面。

strftime的函数式写法为

In [9]: datetime.strftime(datetime.now(),"%b %d %Y %H:%M:%S")

Out[9]: 'Jun 11 2020 08:08:52'

这样一来与strptime函数就完全保持一致了,二者的参数都遵循 src to dst 的原则。

总结

1、二者的共性

使用strptime与strftime,直觉思考的时候首先从动词出发,分别从parse和format出发,并应用其函数式的完整参数模式,思考链条为:

parse -> parse src_string to dst_time

format -> format src_time to dst_string。

概括为以下三点:

辨析parse or format

都遵循 src to dst

str[pf]time顺序不变

2、特例与常规

除了re.search(pattern, src)之外,还有一个不守规矩的特例。

先看字符串的str.split函数

In [12]: "source to destination".split()

Out[12]: ['source', 'to', 'destination'] #遵循source to destination, convert src_str to dst_list

但是其逆操作却将要输出的结果放在了前面。

In [13]: " ".join(['source', 'to', 'destination'])

Out[13]: 'source to destination'

显然['source', 'to', 'destination'].join(" ")更为合理 convert src_list to dst_string

一种可能的解释,Python将所有涉及string的操作集中在了一处。

In [16]: len([m for m in dir(str) if not m.startswith("__")])

Out[16]: 45

In [17]: len([m for m in dir(list) if not m.startswith("__")])

Out[17]: 11

可以看到字符串str的方法整整是list的方法的四倍还多。

由此,我们辨析特例与常规:

regex.find 和 str.join 是特例,strptime, strftime, str.split是常规。

3、系统的date与clock服务

费这么多笔墨辨析strptime这一个函数,乃是因为维护系统的时间是操作系统最核心的基础服务之一。

$ date -u

$ sudo hwclock -u

2019-05-08 20:19:14.764965+08:00

#str2time, strptime

$ date -d "08 May 2019" +"%c"

Wed 08 May 2019 14:00:00 AM CST

#time2str, strftime

$ date +"%d %B, %Y"

08 May, 2019

#思路与strptime, strftime一致

盼本文对你有点滴启发有帮助。

文源网络,仅供学习之用,如有侵权请联系删除。

在学习Python的道路上肯定会遇见困难,别慌,我这里有一套学习资料,包含40+本电子书,800+个教学视频,涉及Python基础、爬虫、框架、数据分析、机器学习等,不怕你学不会!

https://shimo.im/docs/JWCghr8prjCVCxxK/ 《Python学习资料》

关注公众号【Python圈子】,优质文章每日送达。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python datetime.strptime() 是一个函数,用于将字符串解析为日期时间对象。该函数需要两个参数:一个是表示日期时间字符串的字符串,另一个是日期时间格式的字符串。格式字符串使用特定的占位符来表示不同的日期时间部分,如年、月、日、时、分、秒等。使用该函数可以将字符串转换为 datetime 对象,以便进行日期时间的操作和计算。是的,您的问题是关于Pythondatetime.strptime() 函数。该函数可以将一个字符串解析为一个 datetime 对象,以便进行日期时间的操作和计算。datetime.strptime() 函数需要两个参数:第一个参数是表示日期时间字符串的字符串,第二个参数是日期时间格式的字符串。日期时间格式字符串包含特定的占位符,用于表示不同的日期时间部分,例如年、月、日、小时、分钟、秒等等。通过在日期时间格式字符串使用正确的占位符,可以确保 datetime.strptime() 函数能够正确地解析日期时间字符串。 是的,您的理解是正确的。datetime.strptime() 是 Python 用于将字符串解析为日期时间对象的函数。它需要两个参数:一个是表示日期时间字符串的字符串,另一个是日期时间格式的字符串。格式字符串使用特定的占位符来表示不同的日期时间部分,如年、月、日、时、分、秒等。通过在日期时间格式字符串使用正确的占位符,可以确保 datetime.strptime() 函数能够正确地解析日期时间字符串,从而创建一个 datetime 对象,以便进行日期时间的操作和计算。`datetime.strptime()` 是 Python 一个用于将字符串解析为日期时间对象的方法。它可以接受两个参数,第一个参数是待解析的日期时间字符串,第二个参数是该字符串的格式化字符串,用于指定日期时间字符串各个部分的格式。 例如,如果有一个日期时间字符串 "2022-12-31 23:59:59",可以使用以下代码将其解析为一个 `datetime` 对象: ```python from datetime import datetime dt_str = "2022-12-31 23:59:59" dt_format = "%Y-%m-%d %H:%M:%S" dt = datetime.strptime(dt_str, dt_format) ``` 在上述代码,`%Y` 表示年份(四位数字),`%m` 表示月份(两位数字),`%d` 表示日期(两位数字),`%H` 表示小时(24 小时制,两位数字),`%M` 表示分钟(两位数字),`%S` 表示秒数(两位数字)。通过这些格式化字符串,`datetime.strptime()` 方法就可以将字符串解析为 `datetime` 对象。Pythondatetime.strptime()方法是用于将字符串解析为日期时间对象的函数。该方法可以将一个字符串解析为一个具有年、月、日、时、分、秒等属性的datetime对象。它的语法如下: datetime.strptime(date_string, format) 其,date_string是要解析的日期时间字符串,format是日期时间字符串的格式。通过指定格式,方法可以将字符串解析为datetime对象。例如: ``` import datetime date_string = "2022-03-01" date_object = datetime.datetime.strptime(date_string, "%Y-%m-%d") print(date_object) ``` 输出结果为: ``` 2022-03-01 00:00:00 ``` 在这个例子,方法将字符串“2022-03-01”解析为一个datetime对象,并指定了日期时间字符串的格式为“%Y-%m-%d”,即年份-月份-日期。`datetime.strptime()` 是 Python datetime 模块的一个函数,它将字符串解析为日期时间格式。`strptime()` 函数的作用是将一个日期字符串转换为 Python datetime 对象,以便于对日期进行处理和操作。其strptime() 函数接收两个参数,第一个是日期字符串,第二个是日期字符串的格式,返回一个 datetime 对象。例如: ```python from datetime import datetime date_str = "2023-02-26" date_obj = datetime.strptime(date_str, "%Y-%m-%d") print(date_obj) ``` 输出结果为:2023-02-26 00:00:00。Pythondatetime.strptime是一个方法,用于将一个字符串解析成一个datetime对象,其语法如下: ``` datetime.datetime.strptime(date_string, format) ``` 其,date_string是需要解析的字符串,format是字符串的格式,可以使用各种符号和格式化代码,例如%Y表示四位数的年份,%m表示月份等等。datetime.strptime将字符串按照给定的格式解析成datetime对象并返回。 我可以用Pythondatetime.strptime函数来解析字符串和格式化时间文翻译:datetime.strptimePython 日期时间转换函数,它可以将指定格式的字符串转换为 datetime 对象。Pythondatetime.strptime()函数是将字符串解析为datetime对象的方法。它接受两个参数:第一个是要解析的字符串,第二个是字符串的格式。格式参数使用特殊的占位符表示日期和时间的不同部分,例如年份(%Y)、月份(%m)和小时(%H)等。当解析字符串时,函数将使用格式参数来确定每个部分的位置和类型,然后将其转换为对应的日期和时间值。Pythondatetime.strptime()方法用于将一个字符串解析为datetime对象。它接受两个参数:第一个参数是要解析的字符串,第二个参数是字符串的格式。函数返回一个datetime对象,其包含解析的日期和时间信息。 例如,假设我们有一个字符串"2022-12-31",它表示日期"2022年12月31日",我们可以使用datetime.strptime()方法将其解析为一个datetime对象: ```python from datetime import datetime date_str = "2022-12-31" date_obj = datetime.strptime(date_str, "%Y-%m-%d") print(date_obj) ``` 输出结果为:`2022-12-31 00:00:00`。 在上面的例子,"%Y-%m-%d"是字符串的格式,其"%Y"表示年份,"%m"表示月份,"%d"表示日期。通过这种方式,我们可以将一个字符串按照指定的格式解析为datetime对象,进而进行日期和时间的操作。Pythondatetime.strptime()是一个方法,用于将字符串解析为datetime对象。它接受两个参数,第一个参数是要解析的字符串,第二个参数是格式化字符串,用于指定字符串的格式。解析成功后,该方法将返回一个datetime对象。例如: ``` import datetime date_string = "2022-03-14 13:30:00" date_format = "%Y-%m-%d %H:%M:%S" parsed_date = datetime.datetime.strptime(date_string, date_format) print(parsed_date) ``` 输出结果为: ``` 2022-03-14 13:30:00 ``` 在这个例子,我们将一个字符串解析为一个datetime对象,并指定了字符串的格式,即年-月-日 时:分:秒。`datetime.strptime` 是 Python `datetime` 模块的一个方法,用于将字符串转换为日期时间对象。其 `strptime` 是 `string parse time` 的缩写,意为解析字符串时间信息。这个方法需要两个参数:第一个参数是要解析的字符串,第二个参数是一个格式字符串,指定字符串日期时间的格式。例如: ```python from datetime import datetime date_string = '2022-02-26' date_object = datetime.strptime(date_string, '%Y-%m-%d') print(date_object) ``` 在这个例子,`date_string` 是一个字符串,表示日期为 2022 年 2 月 26 日。`%Y-%m-%d` 是一个格式字符串,指定了日期的格式。其 `%Y` 表示四位数的年份,`%m` 表示两位数的月份,`%d` 表示两位数的日期。`datetime.strptime` 方法将字符串解析成一个日期时间对象,并将其赋值给 `date_object` 变量。最后,我们使用 `print` 函数打印出日期时间对象。`datetime.strptime()` 是 Python 的一个方法,它可以将字符串转换为日期时间对象。其,`strptime` 是 `datetime` 模块的一个方法,用于将格式化的字符串转换为日期时间对象。 使用 `datetime.strptime()` 方法时,需要传入两个参数:第一个参数是需要转换的日期时间字符串,第二个参数是表示日期时间字符串格式的字符串。在将字符串转换为日期时间对象时,需要使用对应的格式字符串来指定日期时间字符串的格式。 例如,要将字符串 "2023-02-26 10:30:00" 转换为日期时间对象,可以使用以下代码: ``` from datetime import datetime date_string = "2023-02-26 10:30:00" date_format = "%Y-%m-%d %H:%M:%S" date_time_obj = datetime.strptime(date_string, date_format) print(date_time_obj) ``` 输出结果为: ``` 2023-02-26 10:30:00 ``` 在这个例子,`date_string` 是需要转换的日期时间字符串,`date_format` 是日期时间字符串的格式,使用 `%Y-%m-%d %H:%M:%S` 表示日期时间字符串的格式,其 `%Y` 表示年份,`%m` 表示月份,`%d` 表示日期,`%H` 表示小时,`%M` 表示分钟,`%S` 表示秒钟。最后将日期时间字符串和日期时间格式字符串传入 `datetime.strptime()` 方法,即可得到对应的日期时间对象。`datetime.strptime()` 是 Python `datetime` 模块的一个函数,用于将一个字符串解析为一个 `datetime` 对象。它的作用是将一个符合指定格式的字符串转换为对应的日期时间对象。具体用法为: ```python datetime.datetime.strptime(date_string, format) ``` 其,`date_string` 是待转换的字符串,`format` 是字符串的格式。函数会根据给定的格式解析字符串,并返回对应的日期时间对象。如果字符串的格式与给定的格式不匹配,将会引发 `ValueError` 异常。`pythondatetime.strptime` 是 Python 的一个日期时间处理函数,可以将字符串转换为日期时间格式。其参数包括需要转换的字符串和日期时间的格式字符串,返回结果为对应的日期时间对象。这个函数Python 的标准库 `datetime` 模块。`pythondatetime.strptime()` 是 Python 的一个日期时间模块(datetime module)的一个函数,用于将一个字符串解析为一个日期时间对象。它的作用类似于 `datetime.datetime()` 函数,但是可以从一个字符串提取出日期时间信息并转换成对应的日期时间对象。使用该函数需要传入两个参数:第一个参数是要解析的字符串,第二个参数是解析字符串的格式(format),以告诉函数如何解析字符串。该函数返回一个对应的日期时间对象。 文回复:datetime.strptime()是Python用来将字符串格式化为datetime对象的函数。`pythondatetime.strptime` 是 Python 语言的一个函数,用于将字符串转换为日期时间对象。它的作用是根据指定的格式字符串,将字符串解析成对应的日期时间对象。通常用于处理从外部输入的日期时间字符串,或者从文件读取的日期时间字符串。使用这个函数可以方便地对日期时间进行格式化和处理。`datetime.strptime()` 是Python的一个日期时间模块函数,用于将字符串转换为日期时间对象。它需要两个参数,第一个参数是要转换的字符串,第二个参数是日期时间的格式。这个函数可以帮助我们将字符串转换为Pythondatetime对象,以便于我们进行日期时间计算和格式化输出。pythondatetime.strptimePython一个用于将字符串转换为日期时间对象的方法。其函数签名为: ```python datetime.strptime(date_string, format) ``` 其,`date_string`表示要转换的日期时间字符串,`format`表示日期时间字符串的格式。`format`参数的具体取值可以参考Python官方文档的说明。转换成功后,该方法会返回一个对应的datetime对象,以便后续进行日期时间的计算、比较等操作。`datetime.strptime` 是 Python `datetime` 模块的一个方法,用于将字符串转换为 `datetime` 对象。其语法为: ```python datetime.datetime.strptime(date_string, format) ``` 其,`date_string` 是待转换的日期字符串,`format` 则是日期字符串的格式,它由一系列占位符组成,用于指定日期字符串各个部分的格式。例如,"%Y-%m-%d %H:%M:%S" 表示日期字符串年、月、日、时、分、秒部分的格式。 `strptime` 方法会根据指定的格式解析日期字符串,并返回对应的 `datetime` 对象。如果日期字符串的格式与指定的格式不一致,会抛出 `ValueError` 异常。`datetime.strptime()` 是 Python 的一个函数,可以将一个字符串解析为一个 `datetime` 对象。这个函数接受两个参数:第一个参数是要解析的字符串,第二个参数是表示字符串格式的格式字符串。在解析字符串时,函数会根据给定的格式字符串来识别字符串的各个部分,如年份、月份、日期、小时、分钟、秒等,然后创建一个对应的 `datetime` 对象返回。这个函数在处理日期和时间相关的字符串时非常有用,可以方便地将字符串转换为可操作的日期和时间对象。`pythondatetime.strptime` 是 Python 的一个日期时间模块函数,用于将字符串解析为日期时间对象。 该函数的语法如下: ```python datetime.strptime(date_string, format) ``` 其,`date_string` 是待解析的字符串,`format` 是字符串的格式化字符串,用于指定日期时间字符串各个部分的格式。 例如,如果要将字符串 `"2022-02-28"` 解析为日期时间对象,可以使用如下代码: ```python from datetime import datetime date_string = "2022-02-28" date_obj = datetime.strptime(date_string, "%Y-%m-%d") ``` 其,`"%Y-%m-%d"` 指定了日期时间字符串年份、月份、日期的格式。解析后,`date_obj` 变量就是一个日期时间对象,可以进行各种日期时间操作。`pythondatetime.strptime` 是 Python 的一个函数,用于将字符串解析成日期时间对象。该函数需要两个参数,第一个参数是一个字符串表示日期时间,第二个参数是一个格式化字符串,指定如何解析该字符串。 `strptime` 函数返回一个日期时间对象,包含了解析后的年、月、日、时、分、秒等信息。使用 `strptime` 函数需要先导入 Python 的 `datetime` 模块。 例如,下面的代码将一个字符串解析成日期时间对象: ``` from datetime import datetime date_str = '2022-12-31 23:59:59' format_str = '%Y-%m-%d %H:%M:%S' date_time_obj = datetime.strptime(date_str, format_str) print(date_time_obj) ``` 输出结果为:`2022-12-31 23:59:59`。`pythondatetime.strptime` 是一个 Python 的日期时间处理函数,它可以将一个字符串解析成对应的日期时间对象。在使用 `strptime` 函数时,需要指定两个参数,第一个参数是需要解析的字符串,第二个参数则是一个格式字符串,用于指定日期时间字符串的各个部分的格式。`strptime` 函数会根据格式字符串解析字符串,返回一个日期时间对象。`pythondatetime.strptime`是一个Python标准库函数,用于将字符串解析为`datetime`对象。它的作用是将一个格式化的时间字符串转换为`datetime`对象,以便于进行日期和时间的计算和比较。要使用`pythondatetime.strptime`函数,需要先指定输入字符串的格式,然后将其作为参数传递给该函数,即可获得相应的`datetime`对象。 你可以使用Pythondatetime模块strptime函数来解析字符串表示的日期和时间。例如,你可以使用datetime.strptime('2020-11-18T20:37:00', '%Y-%m-%dT%H:%M:%S')来将2020-11-18T20:37:00格式的字符串转换为Pythondatetime对象。pythondatetime.strptimePython datetime模块的一个方法,用于将字符串解析为日期和时间对象。它需要两个参数:一个是表示日期时间的字符串,另一个是格式化字符串,用于告诉解析器如何解析字符串。解析出来的日期时间对象可以用于各种日期和时间计算和比较。`datetime.strptime()` 是 Python 一个用于将字符串解析为日期时间对象的函数。它的作用是根据指定的格式将一个字符串转换为对应的 `datetime` 对象。其语法如下: ``` datetime.strptime(date_string, format) ``` 其,`date_string` 表示待解析的日期字符串,`format` 表示该字符串的格式。解析后,`datetime.strptime()` 会返回一个对应的 `datetime` 对象。`datetime.strptime()` 是 Python 的一个函数,用于将一个字符串转换为 datetime 对象。其,第一个参数是表示日期时间的字符串,第二个参数是表示日期时间格式的字符串,返回的结果是一个 datetime 对象。例如: ```python from datetime import datetime date_string = "2022-02-28 12:30:00" date_format = "%Y-%m-%d %H:%M:%S" date_time = datetime.strptime(date_string, date_format) print(date_time) # 2022-02-28 12:30:00 ``` 这里将字符串 "2022-02-28 12:30:00" 转换成了 datetime 对象,指定了格式字符串 "%Y-%m-%d %H:%M:%S",返回的结果是一个 datetime 对象,表示的是 2022 年 2 月 28 日 12 点 30 分 0 秒。 你可以使用 datetime.strptime 方法来格式化时间字符串,从而将其转换为 datetime 对象。`pythondatetime.strptime` 是 Python 的一个日期时间处理函数,其作用是将一个字符串解析为日期时间对象。具体来说,它会根据给定的格式字符串(比如"%Y-%m-%d %H:%M:%S")解析对应的字符串,返回一个对应的日期时间对象。使用 `strptime` 函数需要提供两个参数:要解析的日期时间字符串和日期时间格式字符串。`datetime.strptime()` 是 Python 的一个日期时间处理函数,可以将字符串转换为日期时间对象。 这个函数接受两个参数:第一个参数是表示日期时间的字符串,第二个参数是一个字符串,用来说明日期时间的格式。函数会根据第二个参数指定的格式解析第一个参数,返回对应的日期时间对象。 例如,如果要将一个字符串表示的日期时间转换为 datetime 对象,可以这样写: ```python from datetime import datetime date_str = '2023-02-28 12:34:56' date_format = '%Y-%m-%d %H:%M:%S' date_time = datetime.strptime(date_str, date_format) ``` 这样就会得到一个 `datetime` 对象,表示 2023 年 2 月 28 日 12 点 34 分 56 秒。`datetime.strptime()` 是 Python 的一个函数,用于将一个字符串解析成一个 `datetime` 对象。这个函数的用法如下: ```python datetime.datetime.strptime(date_string, format) ``` 其,`date_string` 是需要解析的日期字符串,`format` 是一个字符串,指定了 `date_string` 的格式。例如,如果 `date_string` 的格式为 `"2023-03-01"`,则 `format` 应该为 `"%Y-%m-%d"`。 下面是一个例子,将一个字符串解析成一个 `datetime` 对象: ```python import datetime date_string = "2023-03-01" date_object = datetime.datetime.strptime(date_string, "%Y-%m-%d") print(date_object) ``` 输出结果为: ``` 2023-03-01 00:00:00 ``` 注意,`datetime.strptime()` 函数只能解析符合指定格式的字符串。如果 `date_string` 的格式与 `format` 不匹配,就会抛出一个 `ValueError` 异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值