使用DecimalStyle

时间:2016-03-21 16:06:42

标签: java java-8 java-time

我无法理解DecimalStyle如何影响我使用DateTimeFormatter进行格式化/解析。 如果我尝试:

date = LocalDateTime.now();
DecimalStyle ds = DecimalStyle.of(Locale.GERMAN);
formatter = DateTimeFormatter.ofPattern("yyyy").withDecimalStyle(ds.withDecimalSeparator('?'));
text = formatter.format(date);
System.out.println("DecimalStyle: " + text);

我的输出中不应该有:2.016这样的东西吗? 我实际看到的是,无论我为ds设置什么参数,它都不会影响实际格式化的字符串。 这是java 8 API,不幸的是,在互联网上找不到多少。

1 个答案:

答案 0 :(得分:9)

DecimalStyle会影响0(零),+(正),-(否定)和.(小数点分隔)字符的表示方式。 2016中没有十进制字符(可能有一千个分隔符,但DecimalStyle不能处理它)。

显示差异的示例:

LocalDateTime date = LocalDateTime.now();
DecimalStyle ds = DecimalStyle.of(Locale.GERMAN);
DateTimeFormatter noDs = DateTimeFormatter.ISO_LOCAL_TIME;
DateTimeFormatter withDs = DateTimeFormatter.ISO_LOCAL_TIME.withDecimalStyle(ds);
System.out.println("Default: " + noDs.format(date));    // Default: 17:44:54.457
System.out.println("German:  " + withDs.format(date));  // German:  17:44:54,457