使用DecimalStyle

yur*_*s87 4 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);
Run Code Online (Sandbox Code Playgroud)

我不应该得到类似的东西:输出中的2.016?我实际看到的是,无论我设置什么参数ds,它都不会影响实际格式化的String.这是java 8 API,不幸的是,在互联网上找不到多少.

ass*_*ias 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
Run Code Online (Sandbox Code Playgroud)