如果我正确理解您的要求,这可能会解决您的问题:
int index = 1;
//yyyy, MM, dd, hh, min
LocalDateTime ldt = LocalDateTime.of(2018, 12, 31, 12, 10);
//specify custom pattern here
String date = DateTimeFormatter.ofPattern("yyyy.MM.dd.").format(ldt);
String importance = "kozepesen fontos";
String name = "egyik feladat";
String yesNo = "yes";
String formatter = "%-4d| %-12s| %-17s| %-40s| %-5s%n";
//now use System.out.format() to print with pattern specified in 'formatter'
System.out.format(formatter, index, date, importance, name, yesNo);
Output:
1 | 2018.12.31. | kozepesen fontos | egyik feladat | yes
>在上述解决方案中,我们不可避免地将日期转换为字符串.也就是说,因此我们可以指定用于显示日期的自定义模式.首先,我们创建具有所需模式的DateTimeFormatter()实例.该模式由DateTimeFormatter的ofPattern(String pattern)方法指定.然后,要获取String作为返回类型,我们再次使用DateTimeFormatter中的format(TemporalAccessortemporal)方法.正如上面的代码所示,我们可以将DateTime实例用作format()中的TemporalAccessor参数.
>那么字符串格式化程序=“%-4d |%-12s |%-17s |%-40s |%5s%n”如何工作?
我将Formatter documentation的语法用于Java 8.
–>结果将被证明是正确的.
%->结果是一个文字.
n->结果是特定于平台的行分隔符.
d->结果格式为十进制整数.
s->如果参数arg为null,则结果为“ null”.如果arg实现Formattable,则将调用arg.formatTo().否则,通过调用arg.toString()获得结果.
最后,我使用的数字指定每个字段允许使用的字符数.
>然后最后,我们调用System.out.format而不是printf(),其中格式指定字符串是第一个参数,所有其他要格式化的变量必须以正确的顺序键入(与命令中的顺序相同).格式指定的字符串).