0

arraylist文字列型の があります。この中に、次arraylistのような日付を保存します

 ArrayList<String> date = new ArrayList<String>();
    date.add("20-jan-2013 11:32:39 AM");
    date.add("21-jan-2013 11:32:39 AM");
    date.add("22-jan-2013 11:32:39 AM");
    date.add("23-jan-2013 11:32:39 AM");
    .
    .
    .
    .
    .
    .
    date.add("29-jan-2013 11:32:39 AM");

配列リストに 20 を超える値があります。そして私の質問はarrayList、この日付からのように2つの値(日付)の間 から値(日付)を取得する方法21-jan-2013 11:32:39 AM to 27-jan-2013 11:32:39 AM. です

4

4 に答える 4

2
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-mmm-yyyy hh:mm:ss aa");
Date convertedDate = new Date();
ArrayList<String> filteredDate=new ArrayList<String>;
Iterator<String> iterator = lList.iterator();

for (String temp : lList) 
{
 try
    {
    convertedDate = dateFormat.parse(temp);
     } 
    catch (Exception e) 
    {
    e.printStackTrace();
    }
    if((convertedDate.before(date2)) && (convertedDate.after(date1))) //here "date2" and "date1" must be converted to dateFormat
    {
      filteredDate.add(convertedDate); // You can use these filtered ArrayList
    }
}
于 2013-01-29T10:44:10.087 に答える
0
List<String> result = new ArrayList<String>();
boolean foundFirst = false;
for(String s : date) {
    if(!foundFirst) {
        if(s.equals(myFirstElement)) {
            foundFirst = true;
            result.add(s);
        }
    } else {
        result.add(s);
        if(s.equals(myLastElement) {
            break;
        }
    }
}
于 2013-01-29T10:39:11.147 に答える
0

次のように考えてください:

    ArrayList<String> date = new ArrayList<String>();

    int begin=0, end=0;
    for(int i = 0; i < date.size(); i++){
        if(date.get(i).equals(myFirstDate)){
            begin = i;
        }
        if(date.get(i).equals(myLastDate)){
            end = i;
        }
    }

    ArrayList<String> myDates = new ArrayList<String>();
    for(int i = 0; i < (end - begin); i++){
        myDates.add(date.get(i + begin));
    }
于 2013-01-29T10:39:57.723 に答える
-1

このようなことをします:

private ArrayList<String> filter(ArrayList<String> original, String startDate, String endDate) {
    TimeStamp start = ...; 
    TimeStamp end = ...;

ここでは、文字列値のタイムスタンプを取得する必要があります。これがどのように機能するかを確認するには、この質問と提供された回答を確認してください。

    ArrayList temp = new ArrayList<String>();
    for (int i= 0; i < original.size(); i++) {
       TimeStamp currentTimeStamp = timestamp of original.get(i)
       if (start < currentTimeStamp && stop > currentTimeStamp) {
           temp.add(original.get(i));
       }
    }
    return temp;
}

これはあなたの問題を解決するはずです

于 2013-01-29T10:50:04.973 に答える