使用Robot框架评估后如何获取月份格式为0

时间:2019-07-15 08:50:10

标签: robotframework

在评估了月份之后,我尝试获取“ 06/19”之类的月份和年份格式,但是我却得到“ 6/19”。

Month and year
   ${currentYear}=    Get Current Date  result_format=%y
   ${currentDate}=    Get Current Date
   ${datetime} =  Convert Date  ${currentDate}    datetime
   ${getMonth}=   evaluate   ${datetime.month} - 1
   log to console   ${getMonth}/${currentYear}

我已经通过创建变量@ {MONTHSNO} $ {EMPTY} 01 02 03 04 05 06 07 08 09 10 11 12尝试了另一种方法,并返回$ {MONTHSNO} [$ {getMonth}] / $ {currentYear} 06/19,但我不确定机器人是否可以通过另一种方式将月转换为“ 06”,而不用像这样修改变量。

3 个答案:

答案 0 :(得分:1)

您可以使用自定义关键字来实现此目的,该关键字将以月/年格式返回日期

然后,您可以使用relativedelta()从日期中减去一个月

安装dateutil:

pip install python-dateutil

test.py

from datetime import datetime
from dateutil.relativedelta import relativedelta

def return_current_date_minus_one_month():
    strDate = datetime.today()
    Subtracted_date = strDate + relativedelta(months=-1)
    Date = Subtracted_date.strftime('%m/%y')
    return Date

test.robot

*** Settings ***

Library  test.py

*** Test Cases ***

Month and year
   ${current_date} =  Test.Return Current Date Minus One Month
   log  ${current_date}

结果= ${current_date} = 06/19

答案 1 :(得分:0)

当您运行评估命令时,您正在运行python命令。因此,让我们看一下日期时间文档:

https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

最后,他们提到图书馆时间是有用的。因此,我建议您使用此命令以0X格式返回month:

${getMonth}=   evaluate   time.strftime("%m")

这只给我归零(因为现在是七月)

答案 2 :(得分:0)

您可以使用DateTime库从当前日期减去一个月,如下所示:

${date1}=  Get Current Date  result_format=%d.%m.%Y 
${date2}=  Substract Time To Date  ${date1}  30 days  date_format=%d.%m.%Y result_format=%m.%Y

也许有帮助