rango - fecha en java netbeans
¿Cómo verificar si una fecha es mayor que otra en Java? (4)
Analice la cadena en la fecha, luego compare usando compareTo
, before
o después
Date d = new Date();
d.compareTo(anotherDate)
es decir
Date date1 = new SimpleDateFormat("MM/dd/yyyy").parse(date1string)
Date date2 = new SimpleDateFormat("MM/dd/yyyy").parse(date2string)
date1.compareTo(date2);
javadoc para compareTo http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#compareTo(java.util.Date)
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo comparar fechas en Java? [duplicado] 11 respuestas
Estoy trabajando en una aplicación Java que genera un informe por una duración ingresada por un usuario en la línea de comando. El usuario debe ingresar las fechas en el siguiente formato: dd-MM-aaaa
> java report startDate endDate
Ejemplo:
informe de java 01-01-2013 31-03-2013
En el código guardo las fechas en dos cadenas. Tengo que asegurarme de que la fecha de inicio ingresada por el usuario sea una fecha anterior a la fecha de finalización. ¿Hay una función incorporada que pueda ayudarme a lograr esto pasando estas dos cadenas a ella?
Analice las dos fechas firstDate
y secondDate
usando SimpleDateFormat
.
firstDate.after(secondDate);
firstDate.before(secondDate);
Necesita usar un SimpleDateFormat
( dd-MM-yyyy
será el formato) para analizar las 2 cadenas de entrada a los objetos Date
y luego usar el Date#before(otherDate)
(o) Date#after(otherDate)
para compararlos.
Intenta implementar el código tú mismo.
Puede usar Date.before() o Date.after() o Date.after() para comparar fechas.
Tomado desde here :
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDiff {
public static void main( String[] args )
{
compareDates("2017-01-13 00:00:00", "2017-01-14 00:00:00");// output will be Date1 is before Date2
compareDates("2017-01-13 00:00:00", "2017-01-12 00:00:00");//output will be Date1 is after Date2
compareDates("2017-01-13 00:00:00", "2017-01-13 10:20:30");//output will be Date1 is before Date2 because date2 is ahead of date 1 by 10:20:30 hours
compareDates("2017-01-13 00:00:00", "2017-01-13 00:00:00");//output will be Date1 is equal Date2 because both date and time are equal
}
public static void compareDates(String d1,String d2)
{
try{
// If you already have date objects then skip 1
//1
// Create 2 dates starts
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = sdf.parse(d1);
Date date2 = sdf.parse(d2);
System.out.println("Date1"+sdf.format(date1));
System.out.println("Date2"+sdf.format(date2));System.out.println();
// Create 2 dates ends
//1
// Date object is having 3 methods namely after,before and equals for comparing
// after() will return true if and only if date1 is after date 2
if(date1.after(date2)){
System.out.println("Date1 is after Date2");
}
// before() will return true if and only if date1 is before date2
if(date1.before(date2)){
System.out.println("Date1 is before Date2");
}
//equals() returns true if both the dates are equal
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}
System.out.println();
}
catch(ParseException ex){
ex.printStackTrace();
}
}
public static void compareDates(Date date1,Date date2)
{
// if you already have date objects then skip 1
//1
//1
//date object is having 3 methods namely after,before and equals for comparing
//after() will return true if and only if date1 is after date 2
if(date1.after(date2)){
System.out.println("Date1 is after Date2");
}
//before() will return true if and only if date1 is before date2
if(date1.before(date2)){
System.out.println("Date1 is before Date2");
}
//equals() returns true if both the dates are equal
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}
System.out.println();
}
}