【问题标题】:Can I convert List<Date> to ArrayList<String>?我可以将 List<Date> 转换为 ArrayList<String> 吗?
【发布时间】:2017-08-17 16:14:48
【问题描述】:

我有一个存储在List&lt;Date&gt; 中的日期列表,并从方法getDates 中获取数据。现在我想将其转换为 ArrayList&lt;String&gt; 但我收到了这个错误:

ArrayList 不能应用于 java.util.List。

因为我想从列表中更改日期格式。我试过这个Convert ArrayList of String type into Date type? 并转换日期,第一个日期必须存储为字符串,但我的情况是我的日期存储在列表中。问题是,我仍然无法将 List 转换为字符串。

这是我的代码:

List<Date> dates = getDates(date1, date2);
ArrayList<String> dateStringList = new ArrayList<>();
dateStringList.add(dates);

有没有办法将List&lt;Date&gt; 中的数据转换为ArrayList&lt;String&gt;? 试了很多方法还是报错。

【问题讨论】:

  • 遍历日期列表,将每个日期转换为字符串,然后将字符串添加到您的 dateStringList 中。谷歌“convert Date to String Java”会给你几十个答案
  • 将你的 dateStringList 实例化为 List 而不是 ArrayList
  • Date“转换”为String(这实际上称为格式化)是一个过于宽泛的问题,因为有许多不同的方法可以做到这一点。例如:今天的日期可以格式化为17/08/2017Aug 17th 2017Thu Aug 17 13:19:00 BRT 2017等。你需要知道你想要哪种格式。反正SO里面已经有很多问题了,请先搜索一下,如果没有找到答案可以edit这个问题解释一下为什么搜索不到解决你的问题。 我尝试了很多方法 - 所以edit 这个问题并添加你的尝试。
  • 是的,有很多关于“将日期转换为 Java 字符串”的答案,但它与我的情况不同。我已经编辑了我的问题@GabeSechan

标签: android date arraylist


【解决方案1】:

您应该使用增强的 for 循环来实现它,如下所示:

List<Date> dates = getDates(date1, date2);
List<String> dateStringList = new ArrayList<>();

for (Date date : dates) {
    String dateStr = String.valueOf(date);
    dateStringList.add(dateStr);
}

在上面的代码中,我们实际上循环了dates列表中的每个Date,将它们转换为String,然后将它们添加到dateStringList列表中。

如果您需要特定格式的日期字符串,则应在更改为必要格式时使用以下方法:

public static String dateToString(Date date) {
    String convertedDate = "";

    try {

        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
        convertedDate = dateFormat.format(date);

    } catch (Exception e) {
        e.printStackTrace();
        Log.e("dateToString_EX", e + "");
    }

    return convertedDate;
}

并在for() 循环中像下面这样调用它:

for (Date date : dates) {
    //String dateStr = String.valueOf(date);
    String dateStr = dateToString(date);
    dateStringList.add(dateStr);
}

【讨论】:

  • 这实际上是一个公认的答案 DownVoter 先生,你为什么不必要地投反对票?
【解决方案2】:

如果您使用 jack 或 JaCoCo(here 有关它的更多信息),那么您可以在其上使用 lambda 和流!

List<Date> myVarList = Arrays.asList(new Date(), new Date(), new Date(), new Date());
List<String> myVarListString = new ArrayList<>();

myVarListString.addAll(myVarList.stream().map(x -> x.toString()).collect(Collectors.toList()));

System.out.println(myVarListString);
System.out.println(myVarList);

【讨论】:

    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 2018-07-06
    • 2018-06-11
    • 2012-06-06
    • 2011-07-24
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    相关资源
    最近更新 更多