我正在开发一个应用程序,我需要获取当前年,月和日。有没有办法在规则的前块中获取此信息?
我可以将这些数据作为字符串或数字或两者来获取吗?
http://docs.kynetx.com/docs/Time上记录了时间函数,但它们似乎都不适用于我想要做的事情。
有没有办法在获取此数据时设置时区?
答案 0 :(得分:4)
我能够使用strftime来做到这一点,这似乎是一个没有记录的功能,所以请谨慎使用。
ruleset a60x518 {
meta {
name "date-test"
description <<
date-test
>>
author "Mike Grace"
logging on
}
rule testing {
select when pageview ".*"
pre {
retTime = time:strftime(time:now({"tz":"America/Denver"}), "%c");
month = time:strftime(time:now({"tz":"America/Denver"}), "%B");
year = time:strftime(time:now({"tz":"America/Denver"}), "%Y");
day = time:strftime(time:now({"tz":"America/Denver"}), "%d");
}
{
notify("time",retTime) with sticky = true;
notify("month",month) with sticky = true;
notify("year",year) with sticky = true;
notify("day",day) with sticky = true;
}
}
}
App在example.com上运行两次。将时区设置为纽约并将其他时间设置为丹佛
我使用此网站http://www.statoids.com/tus.html来获取用于时区的正确字符串。我不知道他们是否全部工作。我刚刚找到了这个网站,并尝试了一些,他们的工作是谨慎使用。
答案 1 :(得分:3)
也许文档被还原了。为方便起见,这里是strftime的文档:
<强>时间:的strftime()强>
将日期时间字符串转换为其他格式
Usage
time:strftime(`<string>`,`<format>`)
strftime的有效格式参数遵循POSIX strftime约定。
样本
time:strftime(xTime,”%F %T”) # 2010-10-06 18:15:24
time:strftime(xTime,”%F”) # 2010-10-06
time:strftime(xTime,”%T”) # 18:19:29
time:strftime(xTime,”%A %d %b %Y”) # Wednesday 06 Oct 2010
time:strftime(xTime,”%c”) # Oct 6, 2010 6:25:55 PM
时间:现在()
基于用户位置数据的当前日期时间
Usage
time:now()
time:now({“tz” : <timezone>)
<强>时间:新的()强>
从字符串创建新的RFC 3339日期时间字符串(允许在源字符串格式化方面有一定的灵活性)
Usage
time:new() # Equivalent to time:now()
time:new(<string>)
日期时间源字符串的有效格式可在ISO8601 (v2000)。
中找到<强>时间:添加()强>
将特定数量的时间单位添加(或减去)到源字符串
Usage
time:add(<string>,{<unit> : n})