
# 变更记录
| 产品版本 | 更新内容 | 更新日期 |
| --- | --- | --- |
| V6.0.9 | 完善了PC端长日期控件,支持二开参数配置默认时分秒,满足用户使用需求 | 2024-04-10 |
| V7.0.1 | 更新了日期字段属性,用户可通过"格式化"属性来设置日期选择面板的交互形态及选择完成后的显示格式 | 2024-10-24 |
# 1 功能介绍
用于选择日期和时间的控件。结合 *字段布局面板 *控件使用,布局体验最佳。
# 2 控件对象
`kd.bos.form.field.DateTimeEdit`
# 3 视觉展示
* 选择日期和时间(默认态)

* 选择月份(格式化设置yyyy-MM)

* 选择年份(格式化设置yyyy)

# 4 属性说明
## 4.1 通用属性
>通用属性包含字段和控件的一些公有的属性,如宽高,帮助文本等。请参考[通用属性](https://vip.kingdee.com/article/215559076720798976)
## 4.2 样式属性
>样式属性是每个控件在设计器右侧样式栏可以设置的属性,请参考[样式属性](https://vip.kingdee.com/article/252017936767406336)
## 4.3 业务属性
| 属性名 | 类型 | 默认值 | 说明 | 支持版本 |
| --- | --- | --- | --- | --- |
| 格式化 | 下拉 | - | 设置日期控件的交互形态及已选日期的显示格式,详情见[日期字段格式化](https://vip.kingdee.com/knowledge/specialDetail/218022218066869248?category=218035423933468928&id=220180664904104960) | V7.0.1 |
| 掩码 | 下拉 | - | 设置日期控件的交互形态 | V7.0.1以后不再支持该属性,可使用格式化属性 |
| 格式化字符串 | 文本 | - | 设置日期控件编辑完成后的显示格式 | V7.0.1以后不再支持该属性,可使用格式化属性 |
| 缺省值 | 弹框选择 | - | 设置默认展示的日期 | |
| 可选范围 | 弹框选择 | - | 设置日期控件的可选范围,不能选择超出范围的日期 | |
| 时区转换 | 下拉 | 服务器时区 | 切换时区,长日期字段控制时区信息regiontype | |
| 区域类型 | 下拉 | 长日期 | 控制长日期字段显示为短日期格式或者长日期格式,1为短日期,2为长日期 | |
| 为空提示信息 | 文本 | - | 当字段内容为空时,输入框内显示的信息 | |
| 加密存储 | 复选框 | false | 设置字段是否需要加密存储 | |
### 4.3.1 默认时刻
6.0.9版本新增 `defaultTime` 属性,二开可通过插件进行长日期字段的默认时分秒属性设置:
```
// 单头、卡片字段
this.getView().updateControlMetadata('kdtest_datetimefield', { defaultTime: '10:10:10'})
// 分录字段
var clientViewProxy = this.getView().getClientProxy()
clientViewProxy.invokeControlMethod('entryentity', 'setColEditorProp', ['kdtest_datetimefield1', 'defaultTime', '10:10:10'])
```
# 5 长日期接口介绍
## 5.1 控件编程模型
### 5.1.1 控件编程模型定义
长日期字段的控件编程模型是DateTimeEdit,派生自字段基类的控件编程模型FieldEdit:
```java
package kd.bos.form.field;
public class DateTimeEdit extends FieldEdit implements ICloseCallBack {
```
在插件中,可以通过如下代码,获取长日期字段编程模型:
```java
/**
* 演示如果获取长日期字段的编程模型
*/
private void getFieldEdit(){
DateTimeEdit fieldEdit = this.getView().getControl(KEY_DATETIMEFIELD1);
}
```
### 5.1.2 控件方法清单
长日期字段编程模型,除了支持字段编程模型基类提供的属性方法之外,还提供如下特别方法:
| 方法 | 说明 |
| --- | --- |
| setIsStartDate | 设置字段是否为日期范围中的起始日期; |
| getIsStartDate | 获取字段是否为日期范围中的起始日期; |
| setRelatedDate | 设置日期范围中另外一个日期字段标识;
如果只是单独录入一个日期值,无需设置此属性值 |
| getRelatedDate | 获取日期范围中另外一个日期字段标识;
如果只是单独录入一个日期值,此属性返回空 |
| setFormatString | 设置日期格式化字符串,默认格式为 “yyyy-MM-dd hh:mm:ss” |
| getFormatString | 获取日期格式化字符串 |
| setMinDate | 设置可录入的最小日期 |
| setMaxDate | 设置可录入的最大日期 |
## 5.2 数据模型
### 5.2.1 属性对象
长日期字段运行时,主实体模型中的属性对象类型为DateTimeProp:
```java
package kd.bos.entity.property;
public cl