Java中的日期数组

Mad*_*son 7 java arrays date

我知道如何创建一个字符串或整数数组,但是如何创建一个日期数组:/

Osc*_*Ryz 21

与String和Int相同,只需在内部放置不同的类型:

Date [] dates = {
    new Date(), 
    new Date()
 };
Run Code Online (Sandbox Code Playgroud)

声明了一个大小为2的数组,其中包含两个日期.

您还可以使用空值初始化:

 Date [] dates = new Date[2];
Run Code Online (Sandbox Code Playgroud)

或者添加更多重要值:

 Date [] dates = {
    getDateFromString("25/11/2009"), 
    getDateFromString("24/12/2009")
 };

.... 
public Date getDateFromString( String s ) {
    Date result = ...// parse the string set the value etc. 
    return result;
}
Run Code Online (Sandbox Code Playgroud)

编辑

...但无论如何你可以在getDateFromString方法中完成你正在做的事情吗?

当然,我最初没有,因为我的观点是要表明,你可以在那里放置任何类型为"日期"的东西.

您只需使用SimpleDateFormate.parse()方法(继承自DateFormat类)

  simpleDateFormatInstance.parse( "24/12/2009" ); // returns christmas 2009.
Run Code Online (Sandbox Code Playgroud)

这是一个完整的工作样本:

import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
import static java.lang.System.out;

public class DateArrayTest {

    private static final SimpleDateFormat dateFormat 
                   = new SimpleDateFormat("dd/MM/yyyy");
    private static final Date invalidDate = new Date(0);


    // test creating a date from a string.
    public static void main( String [] args ) { 
        Date [] randomDates = {
            fromString("01/01/2010"), // new year
            fromString("16/09/2010"), // 200 yrs Mex indepence 
            fromString("21/03/2010"), // uhhmm next spring?
            fromString("this/should/fail"), // invalid date.
        };

        for( Date date: randomDates ) {
            print( date );
        }
    }

    /**
     * Creates a date from the given string spec. 
     * The date format must be dd/MM/yyyy ie. 
     * 24 december 2009 would be: 24/12/2009
     * @return invalidDate if the format is invalid.
     */
    private static final Date fromString( String spec ) {
        try {
            return dateFormat.parse( spec );
        } catch( ParseException dfe ) {
            return invalidDate;
        }
    }
    private static final void print( Date date ) {
        if( date == invalidDate ) {
            out.println("Invalid date");
        } else {
            out.println( dateFormat.format( date ) );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)