在机器人框架中,获取时区的当前受支持的关键字是:
${month} Get Current Date result_format=%B%Y
将返回:2017年7月
问题是如何从其他国家和地区获取当前日期?
例如越南应该返回:Tháng Bảy 2017
泰国应该返回:กรกฎาคม พ.ศ. 2560
答案 0 :(得分:3)
不幸的是,python没有很好的内置支持来格式化当前语言环境中的日期。您可以暂时切换区域设置,但这不是一个很好的解决方案。
您可以使用Babel包格式化日期,但它并没有提供您期望的完全相同的值 - 情况略有不同。
例如,您可以创建一个以月,年和区域为日期的关键字,并返回格式化版本。
首先,创建一个名为CustomKeywords.py
的python文件,其中包含以下内容:
# CustomKeywords.py
import datetime
from babel.dates import format_date
class CustomKeywords:
def get_date_for_locale(self, locale, year, month=1, day=1):
d = datetime.date(int(year), int(month), int(day))
return format_date(d, "MMMM Y", locale=locale)
接下来,将此库导入您的测试用例,然后调用get date for locale
以获取给定语言环境的日期:
*** Settings ***
Library CustomKeywords.py
*** Test Case ***
Vietnamese
${date}= get date for locale vi_VN 2017 7
Should be equal ${date} tháng bảy 2017
Thailand
${date}= get date for locale th_TH 2017 7
Should be equal ${date} กรกฎาคม 2017
答案 1 :(得分:0)
在Robot Framework Datetime库中,不存在更改TimeZone的概念。 Robot Framework Custom Timestamp函数依赖于底层的Python datatime.strptime函数。此函数使用python Locale进行格式化。
由于这已经成为一个更普遍的Python问题,我已经搜索过SO并发现这个特定的SO answer符合为Robot Framework创建自定义Python关键字的条件,该关键字允许更改Locale和从而确定输出。