Java Weird System output for GregorianCalendar arraylist

Im currently attempting to have data received from Yahoo finance API saved into different array lists but am having a bit of trouble

package Stocks;

   import java.text.*;
   import java.util.*;
   import java.net.URL;
   import java.net.URLConnection;
   import java.util.Calendar;
   import java.util.Collection;
   import java.util.Date;
   import java.util.GregorianCalendar;
   import java.util.Scanner;
   import java.util.Arrays;


public class StockDownload {

public static final int DATE = 0;
public static final int OPEN = 1;
public static final int HIGH = 2;
public static final int LOW = 3;
public static final int CLOSE = 4;
public static final int VOLUME = 5;
public static final int ADJUSTED = 6;

private ArrayList<GregorianCalendar>dates;
private ArrayList<Double>opens;
private ArrayList<Double>highs;
private ArrayList<Double>lows;
private ArrayList<Double>closes;
private ArrayList<Integer>volumes;
private ArrayList<Double>adjcloses;


public StockDownload(String symbol, 
        GregorianCalendar start, GregorianCalendar end){
dates = new ArrayList<GregorianCalendar>();
opens = new ArrayList<Double>();
highs = new ArrayList<Double>();
lows = new ArrayList<Double>();
closes = new ArrayList<Double>();
volumes = new ArrayList<Integer>();
adjcloses = new ArrayList<Double>();

String url = "http://ichart.yahoo.com/table.csv?s=" + symbol 
        + "&a=" + start.get(Calendar.MONTH)
        + "&b=" + start.get(Calendar.DAY_OF_MONTH)
        + "&c=" + start.get(Calendar.YEAR)
        + "&d=" + end.get(Calendar.MONTH)
        + "&e=" + end.get(Calendar.DAY_OF_MONTH)
        + "&f=" + end.get(Calendar.YEAR)
        + "&g=d" + "&ignore=.csv";

try{
    URL yahoofin = new URL(url);
    URLConnection data = yahoofin.openConnection();
    Scanner input = new Scanner(data.getInputStream());
    if(input.hasNext())
        input.nextLine();

    while(input.hasNextLine()){
        String line = input.nextLine();

        String info[] = line.split(",");    
        dates.add(getDates(info[0]));
    }
    for(int i = 0; i < dates.size(); i++){
    System.out.println(dates.get(i));

    }

}catch(Exception e){
    System.err.println(e);
}

}   
public GregorianCalendar getDates(String date){

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    Date rawdate = null;
    try {
        rawdate = df.parse(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance();
    cal.setTime(rawdate);

    GregorianCalendar cleandate = cal;


    return cleandate;
}
}

the output im getting looks like this: java.util.GregorianCalendar[time=1344229200000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Chicago",offset=-21600000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/Chicago,offset=-21600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2012,MONTH=7,WEEK_OF_YEAR=32,WEEK_OF_MONTH=2,DAY_OF_MONTH=6,DAY_OF_YEAR=219,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-21600000,DST_OFFSET=3600000]

which i suppose is technically correct, just more info than I need.

I tested out just printing out what gets stored in the info[] index, Im just having trouble shoving the data into an arraylist. Any assistance or a reference to some good reading material would be greatly appreciated! thanks

PS the class that initiates this isnt shown but all it does is pass the requisite variables to the StockDownload method


You want to use the same SimpleDateFormat to print then,

System.out.println(dates.get(i)); //<-- change this

to something like

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(df.format(dates.get(i).getTime()));
链接地址: http://www.djcxy.com/p/6254.html

上一篇: Java FXML TableColumn不支持GregorianCalendar

下一篇: 用于GregorianCalendar数组列表的Java怪异系统输出