gpt4 book ai didi

java - 如何在 Itemwriter 中格式化输出日期?

转载 作者:行者123 更新时间:2023-11-29 05:14:47 28 4
gpt4 key购买 nike

我有一个域类如下

class SubScritpion{

private String subScripId;
private String useId;
private Date subScripDate;
private Date billStartDate;
private Date billEndDate;
private int amount;

//getters and Setters
}

我正在从数据库中读取这些数据,数据类型为数据库中的时间戳,并将其转换为 java.util.Date 并使用 flatefileItemwriter 写入 csv 文件,我的 ItemWriter 如下。

<bean id="kpCvsFileItemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter"
scope="step">
<!-- write to this csv file -->
<property name="resource" value="file:/#{jobParameters['abs.file.path']}" />
<property name="shouldDeleteIfExists" value="true" />

<property name="lineAggregator">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
<property name="delimiter" value="," />

<property name="fieldExtractor">
<bean
class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
<property name="names"
value="subScripId,useId,subScripDate,billStartDate,billEndDate,amount" />
</bean>
</property>
</bean>
</property>

<property name="headerCallback" ref="kpFileHeader" />

</bean>

现在的问题是日期格式 我的数据库的日期格式为 17-NOV-14 04.25.06.806000000 AM 但 csv 文件包含日期格式 Mon Nov 17 04:25: 06 协调世界时 2014

虽然我找到了 ItemReader 的一些引用,但我没有找到任何可以插入 ItemWriter 的格式化程序。

一种方法是通过引入 ItemProcesser 并使用 SimpleDateFormatter 将日期格式转换为字符串并写入域 ojbect 中的新字段来解决此问题,然后引用此新字段而不是 itemWriter 中归档的日期。

但我想要更简洁的解决方案,类似于 CustomEditor 可以在 spring xml 中应用值类型。有人可以指出这方面或方向的一些资源

最佳答案

您正在寻找的“格式化程序”是 LineAggregator。目前您正在使用 DelimitedLineAggregator,它在处理数据的分隔方面时不处理格式。查看 FormatterLineAggregator。它允许您通过指定字符串格式(使用 String.format())来格式化从 LineAggregator 生成的输出 String。从那里您应该能够指定要呈现日期的格式。

关于java - 如何在 Itemwriter 中格式化输出日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26993113/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com