Python 3.6 - 将'YYYY-MM-DD'字符串作为日期时间数据类型分配给变量?



我正在使用Python 3.6脚本处理从RabbitMQ接收的消息。

我使用逗号拆分每个消息字符串,这些逗号分隔其内容的每个部分。然后,我将它们作为值分配给变量,同时设置它们的数据类型......

我在每条消息中收到整数、小数和字符串,并且可以根据需要设置它们,但是在消息的两个字段中,我收到一个"YYYY-MM-DD"和一个用逗号分隔的"HH:mm:SS"字符串。

理想情况下,我想将它们作为日期时间对象分配给变量,以便我可以稍后在脚本中的计算中使用它们......

我似乎无法做到这一点,我认为这可能不是 Pythonic 的做事方式 - 就像我以前处理作为字符串接收的日期时间值时一样,我不得不在一个执行任何计算的函数中转换它们需要......

从本质上讲,我从未转换(从字符串(并将日期时间数据类型存储为 Python 中的变量,也没有看到其他地方这样做......

我是否正确认为这是不可能的,或者这不是好的做法,日期或时间值应该存储为字符串(或整数(,直到需要它们,然后任何转换都应该在使用这些值处理/或计算的函数中完成?

从概念上讲,我希望能够执行以下操作:

todays_date = '2018-06-11' # assign a date string to a variable
todays_date = date(todays_date) # convert the date string to a date datatype

然后稍后在简单的验证中使用 todays_date 的值,如下所示...

if todays_date == date.today():
do something...

或与时间相似,例如

stored_time = '18:03:23' # assign time to a variable as a string
stored_time = time(stored_time) # convert the string to a time datatype
if stored_time - now() > (03:00:00):
do something...

我在搜索时没有看到这样的东西,所以我认为这是不可能的,即使从逻辑上你会认为它应该是,但我想检查以防万一我误解了某些东西......

任何帮助将不胜感激!

编辑:感谢Mulli的以下答案 - 我能够使用以下方法将字符串分配为日期时间变量值:

msg[3] = datetime.strptime(msg[3],"%Y-%m-%d")  #  YYYY-MM-DD
msg[4] = datetime.strptime(msg[4], "%H:%M:%S.%f")  # HH:MM:SS.sss

我认为您可能正在寻找的是datetime.strptime()方法。

这是参考。

https://docs.python.org/3.6/library/datetime.html#datetime.datetime.strptime

最新更新