如何为月份名称分配一个数字 - Robot Framework
how to assign month name a number - Robot Framework
我通过读取我页面中的一个字段来获取时间戳,该字段中有月份名称,例如 "Feb 28, 2015 12:59"。我想验证它是哪个月份名称并为其分配月份编号。我想获取诸如“2015 年 5 月 28 日 12:59”之类的日期。我已经划分了时间戳,我正在尝试将月份名称转换为数字,如下所示:
|| ${monthNmToNum} | Set Variable If |'${monthAbr}' == 'Feb' | 2
|| ${monthNmToNum} | Set Variable If |'${monthAbr}' == 'Mar' | 3
|| ${monthNmToNum} | Set Variable If |'${monthAbr}' == 'Apr' | 4
但问题是,如果日期戳中的月份名称为 "Feb",则 ${monthNmToNum} 最后变为 "none"。
我真正想要实现的是将这个时间戳转换为纪元。
我正在将 RIDE 用于机器人框架。如果我遗漏了上面的某些信息,请告诉我。
一个简单的解决方案是创建一个包含月份缩写的列表,然后让 python 在列表中查找缩写。只要您确定缩写是什么,这就会起作用,并且它们将始终在列表中:
*** Variables ***
| @{MONTHS} | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec
*** Testcase ***
| Convert month abbreviation to number
| | ${monthAbr}= | Set variable | Feb
| | ${month}= | evaluate | ${MONTHS}.index("Feb") + 1
| | Should be equal as numbers | ${month} | 2
但是,如果您的最终目标是获得 epoc,robot 在 DateTime library. That was answered in this other question you asked earlier: Convert string to seconds - Robot framework 中有一个内置关键字可以实现这一目标。
我们有 DateTime 库,我们可以用它来转换日期和
Python支持不同date formats
查看下面的代码:
${MonthNumber}= Convert Date ${Date} result_format=%m
它会给你月份作为数字,它解决了你的问题。
尝试 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
我通过读取我页面中的一个字段来获取时间戳,该字段中有月份名称,例如 "Feb 28, 2015 12:59"。我想验证它是哪个月份名称并为其分配月份编号。我想获取诸如“2015 年 5 月 28 日 12:59”之类的日期。我已经划分了时间戳,我正在尝试将月份名称转换为数字,如下所示:
|| ${monthNmToNum} | Set Variable If |'${monthAbr}' == 'Feb' | 2
|| ${monthNmToNum} | Set Variable If |'${monthAbr}' == 'Mar' | 3
|| ${monthNmToNum} | Set Variable If |'${monthAbr}' == 'Apr' | 4
但问题是,如果日期戳中的月份名称为 "Feb",则 ${monthNmToNum} 最后变为 "none"。 我真正想要实现的是将这个时间戳转换为纪元。 我正在将 RIDE 用于机器人框架。如果我遗漏了上面的某些信息,请告诉我。
一个简单的解决方案是创建一个包含月份缩写的列表,然后让 python 在列表中查找缩写。只要您确定缩写是什么,这就会起作用,并且它们将始终在列表中:
*** Variables ***
| @{MONTHS} | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec
*** Testcase ***
| Convert month abbreviation to number
| | ${monthAbr}= | Set variable | Feb
| | ${month}= | evaluate | ${MONTHS}.index("Feb") + 1
| | Should be equal as numbers | ${month} | 2
但是,如果您的最终目标是获得 epoc,robot 在 DateTime library. That was answered in this other question you asked earlier: Convert string to seconds - Robot framework 中有一个内置关键字可以实现这一目标。
我们有 DateTime 库,我们可以用它来转换日期和 Python支持不同date formats
查看下面的代码:
${MonthNumber}= Convert Date ${Date} result_format=%m
它会给你月份作为数字,它解决了你的问题。
尝试 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