0

AndroidでExcelファイルを読み取るためにjxl APIを使用しています。Excel から「30/11/2012」のような日付を取得すると、LabelCell の出力に「11/30/12」と表示されます。

1)Excelファイルを読み取るときに、出力をdd / MM / yyyy形式で取得する必要があります.Excelにはそのように存在するため、不必要に別の形式に変換したくありません。どうやってするか ?

2) Excel 列の日付を読み取った後、2 つの変数を生成します。1 つは Excel の日付 - 20 日 (excelMinus20 と呼びましょう) ともう 1 つの Excel の日付 + 10 日 (excelPlus10 と呼びましょう) です。さらに、現在のシステム日付 (スマートフォンの日付) >= excelMinus20 かつ現在のシステム日付 <= ExcelPlus10 の場合。

java.text.Date を使用してこのすべてを行う方法は? joda time も使ってみましたが、複雑すぎて使いづらいです。少なくとも正しい方向に私を導いてください。

よろしくお願いします

4

1 に答える 1

1

テキスト形式から日付を解析するには:

DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse("30/11/2012");

より詳しい情報 :SimpleDateFormat doc

日付から日数を差し引くには:

public static Date substractDays(Date date, int days)
{
    long millis = date.getTime();
    long toSubstract = days * 1000 * 60 * 60 * 60 * 24;
    //                       1milli  1s   1m   1h   1d
    return new Date(millis-toSubstract);
}

-を+に置き換えることを除いて、いくつかの日を追加することは同じです。

StringDateオブジェクトから表現を取得するには:

DateFormat formatter = new SimpleDateFormat("...pattern...");
String formatedDate = formatter.format(date.getTime());

編集:

提案した方法で日付の加算/減算を行うこともできます。

public static Date substractDays(Date date, int days)
{
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.add(Calendar.DATE, -20 /*or +10*/); 
    return calendar.getTime();
}

日付が間隔内にあるかどうかを確認する場合は、次のようにします。

public static boolean isInInterval(Date date, Date from, Date to)
{
    return date.getTime()<to.getTime() && date.getTime() > from.getTime();
}
于 2012-09-16T11:07:27.937 に答える