首页 > 解决方案 > Java SimpleDataFormat 无法正确显示

问题描述

我正在尝试将字符串数组转换为具有以下格式的日期数组列表 - “dd/MM/yyyy”我在下面包含了我的方法。当我打印 ArrayList 时,日期格式不正确并显示为:“Thu Mar 05 00:00:00 GMT 2020” 谁能想到为什么会这样?

private void convertDates()
        {
            SimpleDateFormat formatter1=new SimpleDateFormat("dd/MM/yyyy");

            for (String dateString : date) {
                try {
                    dateList.add(formatter1.parse(dateString));
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
            displayDates.setText(Arrays.toString(dateList.toArray()));
        }

标签: javaarrayssimpledateformat

解决方案


您有一个Date对象列表,当您将它们格式化为字符串时,它们将使用其默认格式,无论您用于解析它们的格式如何。如果你想以这种格式显示它们,你必须明确地这样做。例如:

displayDates.setText(
    dateList.stream().map(formatter1::format).collect(Collectors.joining(","));

推荐阅读