-1

日付を解析していますが、適切な結果が得られません。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
startDate = dateFormat.parse("2013-05-18");

出力「Sat May 18 00:00:00 IST 2013 」を取得していますが、文字列ではなく日付形式で単純な2013-05-18形式にしたいです。

前もって感謝します...!!!

4

3 に答える 3

5

文字列「2013-05-18」から文字列「2013-05-18」が必要な場合は、解析はまったく必要ありません。日付オブジェクトを特定の形式の文字列に変換するには、次を使用しますSimpleDateFormat.format()

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
startDate = dateFormat.parse("2013-05-18");
System.out.println(dateFormat.format(startDate));

Date オブジェクトは、ミリ秒数を保持する long 値の単なるラッパーです。そのtoString()メソッドは、文字列を解析して Date オブジェクトを作成するために使用したパターンを使用しません。

于 2013-05-18T10:05:27.157 に答える
2

@JB Nizetに同​​意します

   Date now = new Date();
   SimpleDateFormat originalFormat = new SimpleDateFormat("yyyy-MM-dd");
   System.out.println("Format :   " + originalFormat.format(now));

出力

    Format :   2013-05-18

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

SimpleDateFormat は、ロケールに依存した方法で日付をフォーマットおよび解析するための具象クラスです。書式設定 (日付 -> テキスト)、解析 (テキスト -> 日付)、および正規化が可能です。

日付比較用

 public class DateComparision
 {
 public static void main( String[] args ) 
 {
    try{

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2013-4-10");
        Date date2 = sdf.parse("2013-4-30");

        System.out.println(sdf.format(date1));
        System.out.println(sdf.format(date2));

        if(date1.compareTo(date2)>0){
            System.out.println("Date1 is after Date2");
        }else if(date1.compareTo(date2)<0){
            System.out.println("Date1 is before Date2");
        }else if(date1.compareTo(date2)==0){
            System.out.println("Date1 is equal to Date2");
        }else{
            System.out.println("How to get here?");
        }

    }catch(ParseException ex){
        ex.printStackTrace();
    }
}
}

編集:

        public static void main( String[] args ) 
{
    try{

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2013-8-16");
        Date date2 = sdf.parse("2013-8-15");

        System.out.println(sdf.format(date1));
        System.out.println(sdf.format(date2));

        if(date1.after(date2)){
            System.out.println("Date1 is after Date2");
        }

        if(date1.before(date2)){
            System.out.println("Date1 is before Date2");
        }

        if(date1.equals(date2)){
            System.out.println("Date1 is equal Date2");
        }

    }catch(ParseException ex){
        ex.printStackTrace();
    }
}

出力:

      2013-08-16
      2013-08-15
      Date1 is after Date2

編集2:

      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      Date date1 = sdf.parse("2013-4-10");
      Date date2 = sdf.parse("2013-5-30");
      Date currentdate = sdf.parse("2013-5-15");

      System.out.println(sdf.format(date1));
      System.out.println(sdf.format(date2));

      if(date1.compareTo(currentdate) * currentdate.compareTo(date2) > 0)
       {
                System.out.println("Current Date is between the two dates");
       }  

出力

      2013-04-10
      2013-05-30
      Current Date is between the two dates
于 2013-05-18T10:07:13.763 に答える
0

SimpleDateFormat の便利な例を次に示します。

public class JavaSimpleDateFormatTest
{
public static void main(String[] args)
{
// (1) get today's date
Date today = Calendar.getInstance().getTime();

// (2) create our date "formatter" (the date format we want)
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-hh.mm.ss");

// (3) create a new String using the date format we want
String folderName = formatter.format(today);

// (4) this prints "Folder Name = 2009-09-06-08.23.23"
System.out.println("Folder Name = " + folderName);
}
}

詳細については、こちらをご覧ください

于 2013-05-18T10:07:20.703 に答える