如何为月份名称分配一个数字 - 机器人框架

时间:2015-05-06 17:11:00

标签: robotframework

我通过阅读页面中的字段来获取时间戳,该字段中包含月份名称,如“2015年2月28日12:59”。我想验证它是哪个月份名称并为其分配月份编号。我想得到“5 28,2015 12:59”这样的日期。我已经划分了时间戳,我正在尝试将月份名称转换为数字,如下所示:

|| ${monthNmToNum} |    Set Variable If |'${monthAbr}' == 'Feb' |   2
|| ${monthNmToNum} |    Set Variable If |'${monthAbr}' == 'Mar' |   3
|| ${monthNmToNum} |    Set Variable If |'${monthAbr}' == 'Apr' |   4

但问题是,如果日期戳中的月份名称是“2月”,则$ {monthNmToNum}最后变为“none”。 我真正想要实现的是将这个时间戳转换为时代。 我正在使用RIDE进行机器人框架。如果我错过了上面的一些信息,请告诉我。

3 个答案:

答案 0 :(得分:0)

一个简单的解决方案是创建一个包含月份缩写的列表,然后让python查找列表中的缩写。只要您确定缩写将是什么,这将有效,并且它们将始终在列表中:

.find

但是,如果你的最终目标是获得epoc,那么机器人有一个内置关键字可以在DateTime库中执行此操作。在你之前提到的另一个问题中回答了这个问题:Convert string to seconds - Robot framework

答案 1 :(得分:0)

我们有DateTime库,我们可以使用它来转换日期和 Python支持不同的date formats

请参阅以下代码:

${MonthNumber}=    Convert Date    ${Date}    result_format=%m

它会给你一个月的数字,它可以解决你的问题。

答案 2 :(得分:0)

尝试使用https://docs.python.org/3/library/datetime.html中列出的某些百分比格式的代码指令,例如:%b Month as locale’s abbreviated name.

因此:${datetime_standard} = Convert Date 1977 May 4 date_format=%Y %b %d

收益:1977-05-04 00:00:00.000