Eu tenho uma variável LocalDate chamada date; quando imprimo, ela exibe 05/05/1988.
Eu tenho uma variável LocalDate chamada date; quando imprimo, ela exibe 05/05/1988.
Respostas:
SimpleDateFormat não funcionará se ele estiver iniciando com LocalDate, que é novo no Java 8. Pelo que posso ver, você precisará usar o DateTimeFormatter, http://docs.oracle.com/javase/8/docs/api/java/ time / format / DateTimeFormatter.html .
LocalDate localDate = LocalDate.now();//For reference
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd LLLL yyyy");
String formattedString = localDate.format(formatter);
Isso deve ser impresso em 5 de maio de 1988. Para obter o período após o dia e antes do mês, talvez seja necessário usar "dd'.LLLL yyyy"
Com a ajuda dos posts do ProgrammersBlock, eu vim com isso. Minhas necessidades eram um pouco diferentes. Eu precisava pegar uma string e devolvê-la como um objeto LocalDate. Recebi um código que estava usando o Calendar e SimpleDateFormat mais antigos. Eu queria torná-lo um pouco mais atual. Isto é o que eu vim com.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
void ExampleFormatDate() {
LocalDate formattedDate = null; //Declare LocalDate variable to receive the formatted date.
DateTimeFormatter dateTimeFormatter; //Declare date formatter
String rawDate = "2000-01-01"; //Test string that holds a date to format and parse.
dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE;
//formattedDate.parse(String string) wraps the String.format(String string, DateTimeFormatter format) method.
//First, the rawDate string is formatted according to DateTimeFormatter. Second, that formatted string is parsed into
//the LocalDate formattedDate object.
formattedDate = formattedDate.parse(String.format(rawDate, dateTimeFormatter));
}
Espero que isso ajude alguém, se alguém vir uma maneira melhor de executar essa tarefa, adicione sua opinião.
LocalDate.parse(rawDate)! String.formatestá sendo usado de uma forma totalmente errada aqui, na verdade, apenas retornando a primeira string; o DateTimeFormatternão está sendo usado; parseé um staticmétodo de LocalDate; nãoformattedDate é uma data formatada, nem mesmo uma (conforme solicitado em questão) #String
Existe uma maneira interna de formatar o LocalDate para joda lib
import org.joda.time.LocalDate;
LocalDate localDate = LocalDate.now();
String dateFormat = "MM/dd/yyyy";
localDate.toString(dateFormat);
Caso você ainda não o tenha, adicione-o ao build.gradle:
implementation 'joda-time:joda-time:2.9.5'
Feliz codificação! :)
Uma maneira bem legal de fazer isso é usar, SimpleDateFormateu vou te mostrar como:
SimpleDateFormat sdf = new SimpleDateFormat("d MMMM YYYY");
Date d = new Date();
sdf.format(d);
Vejo que você tem a data em uma variável:
sdf.format(variable_name);
Felicidades.
LocalDateinstância em um formato específico. Como poderia SimpleDateFormatajudá-lo aqui?
Strings.