Упрощенный формат установлен в 01 - PullRequest
0 голосов
/ 28 сентября 2018

Как я могу поставить 01 в дату, но не точную дату сегодня в SimpleDateFormat, когда я использую

SimpleDateFormat day= new SimpleDateFormat("dd");

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

SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
        String NOW = (sdf.format(new java.util.Date()));
        SimpleDateFormat month = new SimpleDateFormat("MM");
        String MONTH = (month.format(new java.util.Date()));
        SimpleDateFormat year = new SimpleDateFormat("yyyy");
        String YEAR = (year.format(new java.util.Date()));
        String PAST = ((MONTH)+"-"+(1)+"-"+(YEAR));

((MONTH)+"-"+(1)+"-"+(YEAR)); возвращает 1, но должно быть 01, но когда я его запускаю, оно превращается в 1 только

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

tl; dr

YearMonth
.now(
    ZoneId.of( "America/Montreal" ) 
)
.atDay( 1 )
.format(
    DateTimeFormatter.ofPattern( "MM-dd-uuuu" )
)

java.time

Современный подход использует классы java.time .Никогда не используйте ужасные классы наследия, такие как Calendar и SimpleDateFormat.

Получить текущий год и месяц.

YearMonth ym = YearMonth.now() ;

Получите первый день этого месяца.

LocalDate ld = ym.atDay( 1 ) ;

Укажите нужный шаблон форматирования.

DateTimeFormatter f =  DateTimeFormatter.ofPattern( "MM-dd-uuuu" ) ;
String output = ld.format( f ) ;
0 голосов
/ 28 сентября 2018

Если вы хотите создать объект Date из строкового представления даты, вы можете использовать parse(String source) метод SimpleDateFormat.

Например:

SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
Date date = sdf.parse("09-01-2018");

ТогдаКак вы уже показали ранее, если вы хотите отформатировать объект Date в строку в определенном формате, просто вызовите: sdf.format(date).

Примечание. Помните, что sdf.parse(String source) может вызвать исключение ParseException, если строканедействительная дата.

...