Я пытаюсь использовать метод date.format (DateTimeFormatter formatter) для форматирования списка строк даты, где 'date' является объектом java.time.LocalDate, например. Проблема в том, что я не могу найти прямой способ создания объекта Year из строки. Например, если у меня есть строка yearString = "90". Я хотел бы создать объект Year, равный этому значению, а затем использовать метод format для вывода yearStringNew = "1990". Ближайшим я вижу публичный конструктор функцию now(), которая возвращает текущее время.Возможно создать объект Java.time.LocalDate из строки?
Я также изучил создание объекта «Календарь», а затем создаю там объект даты, способный к форматированию, но я могу создать объект Java.util.Date - в отличие от объекта в пакете Java.time, который мог бы тогда идеально форматируется функцией формата. Я что-то упустил?
FYI Я ссылающийся на Java 8 SDK Javadoc https://docs.oracle.com/javase/8/docs/api/
Спасибо за ваше время.
EDIT: По запросу другого пользователя я разместил свой код ниже; это ближайший я пришел к выполнению того, что я ищу:
//Module 3:
//Format Date Segments
package challenge245E;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class TestClass3 {
public static void main(String[] args) throws ParseException {
DateFormatter dateFormatter = new DateFormatter();
String myGroupedSlices [][] =
{
{"1990", "12", "06"},
{"12","6", "90"}
};
dateFormatter.formatDates(myGroupedSlices);
}
}
class DateFormatter {
public Date[][] formatDates(String[][] groupedDates) throws ParseException {
Date[][] formattedDates = new Date[groupedDates.length][3];
DateFormat yearFormat = new SimpleDateFormat("YYYY");
DateFormat monthFormat = new SimpleDateFormat("MM");
DateFormat dayFormat = new SimpleDateFormat("dd");
//iterate through each groupedSlices array
for (int i=0; i<groupedDates.length;i++) {
//Conditions
if (groupedDates[i][0].length()<3) {
//MDDYY format: if date[0].length < 3
//Re-arrange into YDM order
String m = groupedDates[i][0];
String y = groupedDates[i][2];
groupedDates[i][0] = y;
groupedDates[i][2] = m;
//convert dates to correct format
formattedDates[i][0] = yearFormat.parse(groupedDates[i][0]);
formattedDates[i][1] = monthFormat.parse(groupedDates[i][1]);
formattedDates[i][2] = dayFormat.parse(groupedDates[i][2]);
//testing if block
System.out.println("MDY Order: " + Arrays.toString(formattedDates[i]));
}
if (groupedDates[i][0].length()>3) {
//YYYYMMDD format: if date[0].length > 3
//convert dates to correct format
formattedDates[i][0] = yearFormat.parse(groupedDates[i][0]);
formattedDates[i][1] = monthFormat.parse(groupedDates[i][1]);
formattedDates[i][2] = dayFormat.parse(groupedDates[i][2]);
//testing if block
System.out.println("YMD Order: " + Arrays.toString(formattedDates[i]));
}
}
return formattedDates;
}
}
см [Joda-время, как к разбору-а-нить к Joda-LocalDate] (Http: // codetutr.com/2013/03/05/joda-time-how-to-parse-a-string-to-joda-localdate /) –