0

「mm/dd/yyy」のString形式の日付があります。String dob="02/26/2013";それは生年月日であり、この生年月日が今日の日付よりも前であることを確認したいと思います。それを確認する方法は?

これが私のコードです:

    Calendar cal = Calendar.getInstance();
    Date date = cal.getTime();
    SimpleDateFormat format1 = new SimpleDateFormat("MM-dd-yyyy");
    String date1 = format1.format(date);
    System.out.println(date1);
    String date2 = "2013/02/26";
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/mm/dd");
    Date convertedDate = dateFormat.parse(date2);
    System.out.println(convertedDate);

しかし、convertedDate次のように印刷していますSat Jan 26 00:02:00 IST 2013

4

5 に答える 5

1

new SimpleDateFormat("yyyy/mm/dd");間違っている。mmは分です。そのため、1月26日の深夜0時から2分後になりますmmMM

于 2013-02-26T14:12:35.003 に答える
1
   SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");

        Calendar cal = Calendar.getInstance();
        String strDate = sdf.format(cal.getTime());

        Date date1 = sdf.parse("02/26/2013");
        Date date2 = sdf.parse(strDate);

     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");
        }
于 2013-02-26T13:39:36.343 に答える
1
    String dob="02/27/2013";
    Date today = new Date();

    try {
        Date dobDate = new SimpleDateFormat("MM/dd/yyyy").parse(dob);

        if (dobDate.compareTo(today) <= 0) {
            //before or equals today
            System.out.println("before");
        }
    } catch (ParseException e) {
        //handle exception
    }
于 2013-02-26T13:43:15.050 に答える
0

Joda の時間を見ることができます。文字列を Calendar オブジェクトに変換し、必要に応じて before メソッドまたは after メソッドを使用することもできます。詳細については、DateFormatおよびCalendarクラスの Javadoc を参照してください。

于 2013-02-26T13:40:48.223 に答える
-2

あなたはこれを試すことができます

String yourdate = "02/26/2013";
Date toDate = new SimpleDateFormat("MM/dd/yyyy").parse(yourdate);
long toDateAsTimestamp = toDate.getTime();
long currentTimestamp = System.currentTimeMillis();
long getRidOfTime = 1000 * 60 * 60 * 24;
long toDateAsTimestampWithoutTime = toDateAsTimestamp / getRidOfTime;
long currentTimestampWithoutTime = currentTimestamp / getRidOfTime;

if (toDateAsTimestampWithoutTime <= currentTimestampWithoutTime) {
    System.out.println("Display error.");
} else {
    System.out.println("All ok");
}
于 2013-02-26T13:42:15.697 に答える