Python 日期时间格式

Python datetime format

我正在尝试使用 datetime"Sept 9, 2021" 的形式解析日期 我正在尝试以下格式:

"%m %d, %y" 但在我尝试转换它时它引发了 ValueError

(即使用 int(datetime.strptime("Sept 9, 2021","%m %d, %y").timestamp())

如何判断我应该使用哪种格式?

谢谢

对于strptime,格式代码与平时不同。 您使用 %b 来引用一个 Three-digit 字符串月份,这意味着您必须使用 Sep 而不是 Sept,并且您使用 %Y 来转换一个 4数字年份。

所以代码会像下面这样

int(datetime.datetime.strptime("Sep 9, 2021", "%b %d, %Y").timestamp())
# 1631138400

有关详细信息,请参阅 Format Codes

据我所知,九月的重点工作是九月(不是九月)。
您可以查看此 link 以获取更多详细信息:Python Date abbreviation

我建议您使用类似于这段代码的东西:

from datetime import datetime
date_s = "Sep 9, 2021" 
datetime_object = datetime.strptime(date_s.upper().replace("SEPT", "SEP"), '%b %d, %Y')
print(datetime_object)

您还可以查看与您的问题相似的 Stack 线程:

有几种方法可以从字符串中获取时间戳:

第一个解决方案是使用 PyPi (pip install dateparser) 中的 dateparser 模块。该模块可以帮助您从类似于日期时间字符串的任何字符串中获取日期时间对象。

解决方案:

import dateparser
date_time_object = dateparser.parse("Sept 9, 2021").timestamp()
print(date_time_object)
Result: 1631127600.0

另一个问题是你的字符串在月份名称中包含一个不必要的字符串,所以这个解决方案有点错误,不会帮助你但只是为了理解,我会提供这个:

解决方案:

from datetime import datetime
time_stamp = int(datetime.strptime("Sep 9, 2021","%b %d, %Y").timestamp())
print(time_stamp)
Result: 1631127600