Skip to content

Commit

Permalink
optimize datetime functions for template
Browse files Browse the repository at this point in the history
  • Loading branch information
mylxsw committed Sep 4, 2020
1 parent 1b4ed0c commit 40f2994
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
10 changes: 5 additions & 5 deletions dashboard/src/views/RuleEdit.vue
Original file line number Diff line number Diff line change
Expand Up @@ -443,11 +443,11 @@ let helpers = {
{text: 'explode STR ","', displayText: 'explode(s, sep string) []string | 字符串分隔成数组'},
{text: 'ident "IDENT_STR" STR', displayText: 'ident(ident string, message string) string | 多行字符串统一缩进'},
{text: 'json JSONSTR', displayText: 'json(content string) string | JSON 字符串格式化'},
{text: 'datetime DATETIME', displayText: 'datetime(datetime time.Time) string | 时间格式化展示为 2006-01-02 15:04:05 格式,时区选择北京/重庆'},
{text: 'datetime_noloc DATETIME',displayText: 'datetime_noloc(datetime time.Time) string | 时间格式化展示为 2006-01-02 15:04:05 格式,默认时区'},
{text: 'reformat_datetime_str ORIGINAL_LAYOUT TARGET_LAYOUT DATETIME_STR',displayText: 'reformat_datetime_str(originalLayout, targetLayout string, dt string) string | 重新格式化时间字符串,默认时区'},
{text: 'parse_datetime_str LAYOUT DATETIME_STR',displayText: 'parse_datetime_str(layout string, dt string) time.Time | 将时间字符串解析为时间对象,默认时区'},
{text: 'parse_datetime_str_rfc3339 DATETIME_STR',displayText: 'parse_datetime_str_rfc3339(dt string) time.Time | 将时间字符串解析为时间对象,格式为 RFC3339,默认时区'},
{text: 'datetime LAYOUT DATETIME', displayText: 'datetime(layout string, datetime time.Time) string | 时间格式化展示为 2006-01-02 15:04:05 格式,时区选择北京/重庆'},
{text: 'datetime_noloc LAYOUT DATETIME',displayText: 'datetime_noloc(layout string, datetime time.Time) string | 时间格式化展示为 2006-01-02 15:04:05 格式,默认时区'},
{text: 'reformat_datetime_str ORIGINAL_LAYOUT TARGET_LAYOUT DATETIME_STR',displayText: 'reformat_datetime_str(originalLayout, targetLayout string, dt string) string | 重新格式化时间字符串'},
{text: 'parse_datetime_str LAYOUT DATETIME_STR',displayText: 'parse_datetime_str(layout string, dt string) time.Time | 将时间字符串解析为时间对象'},
{text: 'parse_datetime_str_rfc3339 DATETIME_STR',displayText: 'parse_datetime_str_rfc3339(dt string) time.Time | 将时间字符串解析为时间对象,格式为 RFC3339'},
{text: 'json_get "KEY" "DEFAULT" JSONSTR', displayText: 'json_get(key string, defaultValue string, body string) string | 将 body 解析为 json,然后获取 key 的值,失败返回 defaultValue'},
{text: 'json_gets "KEY" "DEFAULT" JSONSTR', displayText: 'json_gets(key string, defaultValue string, body string) string | 将 body 解析为 json,然后获取 key 的值(可以使用逗号分割多个key作为备选),失败返回 defaultValue'},
{text: 'json_array "KEY" JSONSTR', displayText: 'json_array(key string, body string) []string | 将 body 解析为 json,然后获取 key 的值(数组值)'},
Expand Down
11 changes: 6 additions & 5 deletions pkg/template/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,19 +155,20 @@ func parseDatetimeRFC3339(dt string) time.Time {

// reformatDatetimeStr 时间字符串重新格式化
func reformatDatetimeStr(originalLayout, targetLayout string, dt string) string {
return parseDatetime(originalLayout, dt).Format(targetLayout)
loc, _ := time.LoadLocation("Asia/Chongqing")
return parseDatetime(originalLayout, dt).In(loc).Format(targetLayout)
}

// datetimeFormat 时间格式化,不使用Location
func datetimeFormatNoLoc(datetime time.Time) string {
return datetime.Format("2006-01-02 15:04:05")
func datetimeFormatNoLoc(layout string, datetime time.Time) string {
return datetime.Format(layout)
}

// datetimeFormat 时间格式化
func datetimeFormat(datetime time.Time) string {
func datetimeFormat(layout string, datetime time.Time) string {
loc, _ := time.LoadLocation("Asia/Chongqing")

return datetime.In(loc).Format("2006-01-02 15:04:05")
return datetime.In(loc).Format(layout)
}

type KvPairs []jsonutils.KvPair
Expand Down

0 comments on commit 40f2994

Please sign in to comment.