1  为什么开发ZenData
2  ZenData数据生成工具简介
3  如何获得支持
4. 快速入门
4.1  安装部署
4.2  将ZenData加入系统环境变量中(可选)
4.3  命令行参数说明
4.4  命令行调用示例
4.5  內置数据定义示例
4.6  YAML定义语法总览
5. 用户指南
5.1. 数据定义语法
5.1.1  区间
5.1.2  步长
5.1.3  随机
5.1.4  重复
5.1.5  循环
5.1.6  循环支持区间
5.1.7  格式化
5.1.8  函数处理
5.1.9  字面常量
5.1.10  前后缀
5.1.11  分隔符
5.1.12  宽度
5.1.13  嵌套
5.1.14  嵌套字段递归
5.1.15  字段结果随机
5.1.16  文本文件数据
5.1.17  Excel数据查询
5.1.18  时间表达式
5.1.19  值表达式
5.2. 內置数据定义
5.2.1  系列定义
5.2.2  实例定义
5.2.3  实例间无限级嵌套
5.3. 用户数据自定义
5.3.1  自定义Config
5.3.2  扩展现有定义
5.4. 数据定义引用
5.4.1  引用ranges系列
5.4.2  引用instances实例
5.4.3  多froms联合引用
5.4.4  引用Config配置
5.4.5  引用yaml文件内容
5.4.6  全局from语句
5.5. 数据输出
5.5.1  文本格式输出
5.5.2  JSON格式输出
5.5.3  XML格式输出
5.5.4  SQL格式输出
5.5.5  直接插入数据到MySQL
5.5.6  CSV格式输出
5.5.7  Excel格式输出
5.5.8  ProtoBuf格式输出
5.6. ZenData命令行详解
5.6.1  Default配置覆盖
5.6.2  多配置文件新语法
5.6.3  列出內置数据
5.6.4  查看內置数据
5.6.5  从SQL生成数据定义
5.6.6  从数据库表结构生成数据定义
5.6.7  清除数据前后缀
5.7. ZenData文章生成器
5.7.1  中文词语基础数据
5.7.2  转换文章到YAML配置
5.7.3  文章格式语法介绍
5.7.4  从YAML配置生成新文章
5.8. ZenData客户端
5.8.1  Web接口调用
5.8.2. 数据提供者示例
5.8.2.1  TestNG数据提供者示例
5.8.2.2  PHPUnit数据提供者示例
5.8.2.3  PyUnit数据提供者示例
5.8.3. Web数据管理工具
5.8.3.1  关于客户端
5.8.3.2  加载已有数据文件
5.8.3.3  管理我的数据
5.8.3.4  管理內置数据
5.8.3.5  数据设计页面
5.8.3.6  数据区间编辑
5.8.3.7  数据引用编辑
5.9  ZenData自动升级
6. 内置数据一览
6.1  使用命令查看內置数据
6.2. 预置Excel数据
6.2.1  国家
6.2.2  地址
6.2.3  人名
6.2.4  颜色
6.2.5  中文词语
6.2.6  城市区号
6.2.7  公司名称
6.2.8  成语
6.2.9  歇后语
6.2.10  古诗
6.2.11  歌曲
6.2.12  玩笑
6.2.13  动植物
6.2.14  食物
6.2.15  水果
6.3  內置数据定义

时间表达式

2021-03-12 14:35:25
陈琦
7167
最后编辑:陈琦 于 2021-09-29 10:21:43
分享链接

时间格式支持两种方式定义:一种是以当前时间为基准,在当前时间的基础上增加或者减少对应的时间段;另一种是直接指定具体的时间。
以当前时间为基准进行运算,生成从一月前到一周后数据,步长为60分钟(`m`),单位Y、M、D、W、h、m、s分别对应年、月、日、周、时、分、秒,可用于起始时间和步长,步长的单位默认为1秒(`s`),不写单位是默认单位为秒(`s`)。
月份、星期几的长/短格式,可分别用January/Jan和Monday/Mon来表达,如`YY/Jan/DD`。

- field: field_timestamp_now      
                   range: "(-1M)-(+1w):60m"        
                   prefix: DateTime 
                   type: timestamp 
                   format: "YY/MM/DD hh:mm:ss"


使用指定具体时间进行定义,生成从2021年1月1日0时0分0秒到2021年1月1日23时0分0秒的数据,步长为60秒(`s`),也可以省略起始或者终止时间,省略的部分默认为当前日期的0时0分0秒(如果省略的是起始时间)或者23时59分59秒(如果省略的是终止时间),对于上面第一种方式省略的部分也是一样。

- field: field_timestamp_now_1     
  range: "20210101 000000-20210101 230000:60"       
  prefix: DateTime
  type: timestamp
  format: "YY/MM/DD hh:mm:ss"
- field: field_timestamp_now_2     
  range: "-20210101 230000:60" # 生成从当前时间到2021年1月1日23时0分0秒的数据,步长为60秒      
  prefix: DateTime
  type: timestamp
  format: "YY/MM/DD hh:mm:ss"
- field: field_timestamp_now_3     
  range: "20210101 000000-:2h"  # 生成从2021年1月1日0时0分0秒到当前时间的数据,步长为2小时    
  prefix: DateTime
  type: timestamp
  format: "YY/MM/DD hh:mm:ss"
- field: field_timestamp_now_4     
  range: "20210101 000000:1W"   # 生成从2021年1月1日0时0分0秒到当前时间的数据,步长为1周    
  prefix: DateTime
  type: timestamp
  format: "YY/MM/DD hh:mm:ss"

注意:
1. 合法的时间格式是从0时0分0秒到23时59分59秒,24时0分0秒是不合法的时间
2. 步长会根据指定的起始和结束时间自动调整正负号。


评论列表
2023-04-10 16:25:03
如何获取当前日期时间并按照指定格式生成数据,例如我想生成当前的日期时间20230410162023(即2023.04.10 16:20:23)拼接上三位序列号,但我试了试只能获取到日期,不能获取到当前时间,生成的数据都是20230410000000001这种的
陈琦 2023-04-11 08:51:35
参考这个文件里的配置 https://github.com/easysoft/zendata/blob/master/demo/28_datetime.yaml。
- 跨度:(-1M)-(+1w) 以当前时间为准,从一月前到一周后
- 步长:10 表示每10秒生成一个的数据行

结果:
23/03/11 08:46:46
23/03/11 08:46:56
23/03/11 08:47:06

配置:
- field: time1
range: "(-1M)-(+1w):10"
type: timestamp
format: "YY/MM/DD hh:mm:ss"
2023-04-11 09:09:38
非常感谢耐心回复。但我想生成一个明细流水号,流水号组成是当前日期时间然后拼接序列号,格式是YYYYMMDDhhmmss+三位序列号,这种设置步长从前一个月到后一周每10秒一个数据的不太符合我的预期。能不能搞一个类似jmeter中的time函数的
陈琦 2023-04-13 08:26:02
你可以分成两个子字段,一个是日期时间YYYYMMDDhhmmss,另一个是三位自增的序列号,请参照手册。加我微信aaronchen2k,我邀请你进群。
1/1
发表评论
评论通过审核后显示。