日期时间字段
日期时间字段(DateTime)用于存储日期、时间或日期时间值,支持日期时间、日期、时间三种渲染模式,并可自定义显示格式。
概述
日期时间字段底层以时间戳(timestamp)存储,通过日期渲染类型决定采集与展示的粒度:
- 日期时间:同时采集日期与时间;
- 日期:仅采集日期;
- 时间:仅采集时间(不含日期)。
在每种模式下还可以分别配置日期格式与时间格式,控制列表、详情与表单中的显示样式。
配置项
| 配置项 | 说明 | 可见条件 |
|---|---|---|
| 名称 | 字段显示名称,必填 | 全部 |
| 编码 | 字段唯一编码,必填,创建后不可修改 | 全部 |
| 描述 | 字段用途说明 | 全部 |
| 日期渲染类型 | 日期时间、日期、时间 | 全部 |
| 日期格式 | 日期部分显示格式,默认 YYYY-MM-DD | 渲染类型为日期时间或日期 |
| 时间格式 | 时间部分显示格式,默认 HH:mm | 渲染类型为日期时间或时间 |
日期渲染类型
| 渲染类型 | 值 | 说明 | 存储方式 |
|---|---|---|---|
| 日期时间 | 0 | 采集日期与时间 | 完整日期时间值 |
| 日期 | 1 | 仅采集日期 | 日期部分,时间归零 |
| 时间 | 2 | 仅采集时间 | 以 2000-01-01 为基准的日期时间值 |
日期格式与时间格式
格式使用 day.js 的占位符,常用示例如下:
| 配置项 | 示例值 | 显示效果 |
|---|---|---|
| 日期格式 | YYYY-MM-DD | 2026-06-14 |
| 日期格式 | YYYY年MM月DD日 | 2026年06月14日 |
| 日期格式 | MMMM D, YYYY | June 14, 2026 |
| 时间格式 | HH:mm | 12:56 |
| 时间格式 | HH:mm:ss | 12:56:31 |
| 时间格式 | h:mm A | 12:56 PM |
完整的占位符列表与精度归零规则,请参考 字段配置详解的日期时间章节。
时间类型的存储机制
时间类型字段本质上不需要日期部分,系统统一采用基准日期 2000-01-01 存储,以保证:
- 搜索一致性:
equal/ne与范围搜索都能正确工作; - 数据准确性:避免随机日期导致的时间比较错误;
- 跨时区兼容:统一基准日期确保时区转换一致。
例如用户输入 09:30,前端拼接为 2000-01-01 09:30:00,后端以 UTC 形式存储。
下一步
属性明细
以下内容面向技术实现与 AI 检索。
日期时间字段属性表
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
FieldType | int | 字段类型 | DateTime = 3 |
DateFieldRenderType | DateFieldRenderTypeEnum | 日期渲染类型 | DateTime=0 / Date=1 / Time=2 |
Properties.DateFormat | string | 日期显示格式 | 默认 YYYY-MM-DD |
Properties.TimeFormat | string | 时间显示格式 | 默认 HH:mm |
日期渲染类型枚举值
| 枚举名 | 值 | 中文含义 |
|---|---|---|
DateTime | 0 | 日期时间 |
Date | 1 | 日期 |
Time | 2 | 时间 |
存储示例
字段定义:
{
"Code": "meetingtime",
"Name": "会议时间",
"FieldType": 3,
"DateFieldRenderType": 0,
"Properties": {
"DateFormat": "YYYY-MM-DD",
"TimeFormat": "HH:mm"
}
}
不同渲染模式下的存储值:
{
"Fields": {
"meetingtime": { "Code": "meetingtime", "Text": "2026-06-14 14:30", "Value": "2026-06-14T06:30:00.000Z" },
"birthday": { "Code": "birthday", "Text": "1990-05-20", "Value": "1990-05-20T00:00:00.000Z" },
"workstarttime": { "Code": "workstarttime", "Text": "09:00", "Value": "2000-01-01T01:00:00.000Z" }
}
}