Pentaho 7.0.0-25默认日期时间格式咨询及JXL读取问题
Pentaho 7.0.0-25 JXL Excel Input 默认日期/时间格式说明
针对你遇到的问题,核心逻辑和相关说明如下:
- JXL Excel Input 步骤读取Excel日期时,本质是将Excel存储的日期数值(带时间分量的浮点数)转换为Java的
Date对象,这个对象本身就包含日期和时间信息。你指定的DD/MMM/yyyy仅用于格式化显示,不会改变读取后字段的时间分量存在性——如果Excel单元格本身存储了时间(哪怕是默认的00:00:00),读取结果就会带有时间部分。
关于Pentaho 7.0.0-25的默认日期/时间格式:
- JXL Input 步骤的解析规则:
- 没有硬编码的固定默认格式,它会跟随Excel单元格的格式设置解析。若单元格是纯日期格式(无时间),JXL会返回时间部分为
00:00:00的Date对象;若为日期时间格式,则返回完整的日期+时间值。
- 没有硬编码的固定默认格式,它会跟随Excel单元格的格式设置解析。若单元格是纯日期格式(无时间),JXL会返回时间部分为
- PDI全局默认日期格式:
- Pentaho Data Integration 7.0.0-25的全局默认日期格式为
yyyy/MM/dd HH:mm:ss,但这主要用于全局日期转换、显示场景,JXL Input步骤的解析不受该全局格式直接控制,而是依赖JXL库对Excel日期的原生解析逻辑。
- Pentaho Data Integration 7.0.0-25的全局默认日期格式为
解决当前问题的可行方案:
- 读取后添加Select Values步骤,将日期字段类型转换为
Date并指定格式DD/MMM/yyyy,或用Convert Fields步骤把日期字段转为DD/MMM/yyyy格式的字符串,插入Oracle时,Oracle会自动将时间部分设为00:00:00。 - 也可在Oracle端处理,插入时使用
TRUNC(date_column)函数截断时间部分。
内容的提问来源于stack exchange,提问作者guru mani
相关产品推荐
相关产品推荐

