im teniendo dificultades para tratar de cambiar esta declaración de impresión en una variable para la comparación con otras variables.
¿Hay una manera de almacenar el resultado como una variable en lugar de imprimir en caso que usted necesita para determinar la diferencia de dos fechas?
import java.util.GregorianCalendar;
import java.util.Calendar;
public class Test {
public static void main(String[] args){
int Day = 8;
int Month = 2;
int Year = 1950;
GregorianCalendar gcal = new GregorianCalendar(Year, Month, Day);
String month[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
System.out.println(month[gcal.get(Calendar.MONTH)] + " " + gcal.get(Calendar.DATE) + ", "
+ gcal.get(Calendar.YEAR));}
}
Esta impresora de salida: 8 Mar, 1950
Para almacenar como una variable, por lo que se puede comparar con otras fechas, llamada getTime()
:
int Day = 8;
int Month = 2;
int Year = 1950;
GregorianCalendar gcal = new GregorianCalendar(Year, Month, Day);
Date date = gcal.getTime();
Para formato que como Mar 8, 1950
, utilizar un SimpleDateFormat
:
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM d, yyyy", Locale.US);
String str = dateFormat.format(date);
No hay necesidad de hacer sus propios nombres de los meses.
Sin embargo, si usted está usando Java 8 o posterior 1 , se debe utilizar la LocalDate
clase en lugar de GregorianCalendar
:
int day = 8;
int month = 3;
int year = 1950;
LocalDate date = LocalDate.of(year, month, day);
Tenga en cuenta que a diferencia GregorianCalendar
, el month
valor se basa-1, por lo que debe ser 3
conseguir Mar
.
Para formato que como Mar 8, 1950
, utilizar un DateTimeFormatter
:
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("MMM d, uuuu", Locale.US);
String str = date.format(dateFormat);
1) Si está utilizando Java 6 o 7, todavía se puede utilizar LocalDate
mediante la adición de la ThreeTen-Backport biblioteca.