美文网首页
有关 java 的 FormatStyle 有趣的地方

有关 java 的 FormatStyle 有趣的地方

作者: 温泉的进击 | 来源:发表于2018-08-03 10:41 被阅读0次

    JAVA 8 开始对 time 添加了不少东西,最常见的就是 LocalDate 这样的东西,其实还是多了点其他好玩的东西,比如说 java.time.format.FormatStyle 这个类。下面的代码中让我们来用 Local(语言, 国家) 之后格式化时间看看输出内容都有些什么。

    public class FormatStyleTest {
        public static void main(String[] args) {
            LocalDate ld = LocalDate.now();
            Arrays.asList(FormatStyle.FULL, FormatStyle.LONG, FormatStyle.MEDIUM, FormatStyle.SHORT)
                  .forEach(formatStyle -> {
                      System.out.println(String.format("--- FormatStyle.%s ---",
                                                       formatStyle.toString()));
                      DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDate(formatStyle);
                      Arrays.asList(new String[]{"zh", "CN"},
                                    new String[]{"zh", "HK"},
                                    new String[]{"zh", "TW"},
                                    new String[]{"en", "US"},
                                    new String[]{"en", "UK"},
                                    new String[]{"ja", "JP"})
                            .forEach(strs -> {
                                Locale locale = new Locale(strs[0], strs[1]);
                                System.out.println(String.format("%s %s -> %s",
                                                                 strs[0],
                                                                 strs[1],
                                                                 ld.format(dtf.withLocale(locale))));
                            });
                  });
    
        }
    }
    
    --- FormatStyle.FULL ---
    zh CN -> 2018年7月23日 星期一
    zh HK -> 2018年07月23日 星期一
    zh TW -> 2018年7月23日 星期一
    en US -> Monday, July 23, 2018
    en UK -> Monday, July 23, 2018
    ja JP -> 2018年7月23日
    --- FormatStyle.LONG ---
    zh CN -> 2018年7月23日
    zh HK -> 2018年07月23日 星期一
    zh TW -> 2018年7月23日
    en US -> July 23, 2018
    en UK -> July 23, 2018
    ja JP -> 2018/07/23
    --- FormatStyle.MEDIUM ---
    zh CN -> 2018-7-23
    zh HK -> 2018年7月23日
    zh TW -> 2018/7/23
    en US -> Jul 23, 2018
    en UK -> Jul 23, 2018
    ja JP -> 2018/07/23
    --- FormatStyle.SHORT ---
    zh CN -> 18-7-23
    zh HK -> 18年7月23日
    zh TW -> 2018/7/23
    en US -> 7/23/18
    en UK -> 7/23/18
    ja JP -> 18/07/23
    

    即使是华语圈,出来的结果基本来说都不一样的,而 en US 跟 en UK 都是一样的。

    顺便说一句,java 中格式化时间还是有点麻烦。

    via java.time.format.FormatStyle を確認

    相关文章

      网友评论

          本文标题:有关 java 的 FormatStyle 有趣的地方

          本文链接:https://www.haomeiwen.com/subject/askyvftx.html