Java - григорианский календарь хранится в variabe? - PullRequest
1 голос
/ 04 апреля 2020

Я с трудом пытаюсь изменить этот оператор печати в переменную для сравнения с другими переменными.

Есть ли способ сохранить выходные данные в виде переменной вместо печати, если вам нужно определить разницу? двух дат?

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));}
}

Этот вывод печатает: 8 марта 1950

1 Ответ

2 голосов
/ 04 апреля 2020

Чтобы сохранить как переменную, чтобы ее можно было сравнить с другими датами, позвоните getTime():

int Day = 8;
int Month = 2;
int Year = 1950;
GregorianCalendar gcal = new GregorianCalendar(Year, Month, Day);
Date date = gcal.getTime();

Чтобы отформатировать это как Mar 8, 1950, используйте SimpleDateFormat:

SimpleDateFormat dateFormat = new SimpleDateFormat("MMM d, yyyy", Locale.US);
String str = dateFormat.format(date);

Нет необходимости указывать собственные названия месяцев.


Однако, если вы используете Java 8 или новее 1 , вы должны использовать класс LocalDate вместо GregorianCalendar:

int day = 8;
int month = 3;
int year = 1950;
LocalDate date = LocalDate.of(year, month, day);

Обратите внимание, что в отличие от GregorianCalendar, * Значение 1029 * основано на 1, поэтому для получения Mar должно быть 3.

Чтобы отформатировать это как Mar 8, 1950, используйте DateTimeFormatter:

DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("MMM d, uuuu", Locale.US);
String str = date.format(dateFormat);

1) Если вы используете Java 6 или 7, вы все равно можете использовать LocalDate, добавив библиотеку ThreeTen-Backport .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...