我正在开发一个需要获取当前年份、月份和日期的应用程序。有没有办法在规则的前块中获取这些信息?
我可以将这些数据作为字符串或数字或两者兼而有之吗?
目前在http://docs.kynetx.com/docs/Time上记录了时间函数,但它们似乎都不适用于我想要做的事情。
有没有办法在获取这些数据时设置时区?
我正在开发一个需要获取当前年份、月份和日期的应用程序。有没有办法在规则的前块中获取这些信息?
我可以将这些数据作为字符串或数字或两者兼而有之吗?
目前在http://docs.kynetx.com/docs/Time上记录了时间函数,但它们似乎都不适用于我想要做的事情。
有没有办法在获取这些数据时设置时区?
我能够使用 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;
}
}
}
应用程序在 example.com 上运行两次。一次时区设置为纽约,另一次时间设置为丹佛
我使用此站点http://www.statoids.com/tus.html来获取用于时区的正确字符串。我不知道它们是否都有效。我刚找到这个网站并尝试了一些,它们工作得很好,所以请谨慎使用。
也许文档被还原了。为方便起见,这里是 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})