Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用%f%s(我认为是Java 7格式化程序)类型表示法格式化日期_Java_Spring_Spring Batch - Fatal编程技术网

使用%f%s(我认为是Java 7格式化程序)类型表示法格式化日期

使用%f%s(我认为是Java 7格式化程序)类型表示法格式化日期,java,spring,spring-batch,Java,Spring,Spring Batch,我正在使用Spring批处理将我的域对象输出到CSV文件。为此,我使用了FormatterLineAggregator。它使用%s%f类型格式 见下文 FormatterLineAggregator<MasterList> lineAggregator = new FormatterLineAggregator<>(); lineAggregator.setFormat("%s,%.2f,%.2f,%s,%s,%s,%s,%s,%s,%s,%s"); 我确实不熟悉%s%

我正在使用Spring批处理将我的域对象输出到CSV文件。为此,我使用了
FormatterLineAggregator
。它使用
%s%f
类型格式

见下文

FormatterLineAggregator<MasterList> lineAggregator = new FormatterLineAggregator<>();
lineAggregator.setFormat("%s,%.2f,%.2f,%s,%s,%s,%s,%s,%s,%s,%s");
我确实不熟悉
%s%f
符号

我希望该行末尾的日期看起来像
dd/mm/yyyy hh24:mi:ss
,而不是
yyy-mm-dd

我怎样才能用这个符号呢

还有人知道我在哪里可以找到更多解释语法的参考吗?

类自Java 1.5.0以来就存在。 您可以使用以下格式设置日期格式

%te/%<tm/%<tY %<tT

'e'     Day of month, formatted as two digits, i.e. 1 - 31. 
'm'     Month, formatted as two digits with leading zeros as necessary, i.e. 01 - 13
'Y'     Year, formatted as at least four digits with leading zeros as necessary, e.g. 0092 equals 92 CE for the Gregorian calendar.
'T'     Time formatted for the 24-hour clock as "%tH:%tM:%tS". 

%te/%您的日期字段的类型是字符串还是日期?它是java.util.date我尝试了一下,得到了java.util.IllegalFormatConversionException:e!=java.util.Formatter$FormattSpecifier.failConversion(Formatter.java:4302)~[na:1.8.091]在java.util.Formatter$FormattSpecifier.printDateTime(Formatter.java:2835)~[na:1.8.091]在java.util.Formatter$FormattSpecifier.print(Formatter.java:2740)~[na:1.8.091]在java.util.Formatter.Formatter.java:2526)~[na:1.8.091]在java.util.Formatter.format(Formatter.java:2455)~[na:1.8.0\u 91]在java.lang.String.format(String.java:2981)~[na:1.8.0\u 91]上,我几乎可以使用参数索引。只有一个小问题。我在上面添加了一个编辑。请用ideone检查我的代码。d表示积分型。如果是整数,则结果将格式化为十进制整数。谢谢。为什么只对日期使用参数索引?不客气。我已经删除了索引。请看一看
%te/%<tm/%<tY %<tT

'e'     Day of month, formatted as two digits, i.e. 1 - 31. 
'm'     Month, formatted as two digits with leading zeros as necessary, i.e. 01 - 13
'Y'     Year, formatted as at least four digits with leading zeros as necessary, e.g. 0092 equals 92 CE for the Gregorian calendar.
'T'     Time formatted for the 24-hour clock as "%tH:%tM:%tS". 
StringBuilder sb = new StringBuilder();
Formatter formatter = new Formatter(sb, Locale.US);
formatter.format("%s,%.2f,%.2f,%s,%s,%s,%s,%d,%s,%te/%<tm/%<tY %<tT,%te/%<tm/%<tY %<tT","A",11.2,12.3,"Country Road Shirt","Promotion Component Name A","wasnow","On Sale",100,"100 / 1000",new Date(),new Date());
System.out.println(sb);