Python 3.6 - 将 'YYYY-MM-DD' 字符串作为日期时间数据类型分配给变量?
Python 3.6 - Assign a 'YYYY-MM-DD' string to a variable as a datetime datatype?
我正在使用 Python 3.6 脚本处理从 RabbitMQ 收到的消息。
我使用逗号分隔每个消息字符串来分隔其内容的每个部分。然后我将这些作为值分配给变量,同时设置它们的数据类型...
我在每条消息中收到整数、小数和字符串,并且可以根据需要设置它们,但是在消息的两个字段中我收到一个 'YYYY-MM-DD' 和一个 'HH:mm:SS' 字符串,用逗号分隔。
理想情况下,我想将它们作为日期时间对象分配给变量,以便稍后在我的脚本中的计算中使用它们...
我似乎无法做到这一点,我认为这可能不是 Pythonic 做事的方式 - 就像我之前使用已收到的日期时间值一样作为字符串,我不得不在执行所需计算的函数中转换它们...
基本上我从来没有转换(从字符串)并将日期时间数据类型作为变量存储在 Python 中,我也没有在其他地方看到过这样做...
我是否认为这是不可能的或者这不是好的做法并且日期或时间值应该存储为字符串(或整数)直到需要它们然后任何转换都应该在processing/or 使用这些值计算的函数?
从概念上讲,我希望能够做类似的事情:
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
我正在使用 Python 3.6 脚本处理从 RabbitMQ 收到的消息。
我使用逗号分隔每个消息字符串来分隔其内容的每个部分。然后我将这些作为值分配给变量,同时设置它们的数据类型...
我在每条消息中收到整数、小数和字符串,并且可以根据需要设置它们,但是在消息的两个字段中我收到一个 'YYYY-MM-DD' 和一个 'HH:mm:SS' 字符串,用逗号分隔。
理想情况下,我想将它们作为日期时间对象分配给变量,以便稍后在我的脚本中的计算中使用它们...
我似乎无法做到这一点,我认为这可能不是 Pythonic 做事的方式 - 就像我之前使用已收到的日期时间值一样作为字符串,我不得不在执行所需计算的函数中转换它们...
基本上我从来没有转换(从字符串)并将日期时间数据类型作为变量存储在 Python 中,我也没有在其他地方看到过这样做...
我是否认为这是不可能的或者这不是好的做法并且日期或时间值应该存储为字符串(或整数)直到需要它们然后任何转换都应该在processing/or 使用这些值计算的函数?
从概念上讲,我希望能够做类似的事情:
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