DecimalStyle 的使用
Use of DecimalStyle
我无法理解 DecimalStyle 如何影响我使用 DateTimeFormatter 的 formatting/parsing。
如果我尝试:
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,所以很遗憾,在 Internet 上找不到太多东西。
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
我无法理解 DecimalStyle 如何影响我使用 DateTimeFormatter 的 formatting/parsing。 如果我尝试:
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,所以很遗憾,在 Internet 上找不到太多东西。
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