Очень хорошее утро, у меня есть только один запрос, ниже - программа, которая после исполнения год меняется. Допустим, что дата ввода 03/20/2020
, а затем дата выполнения, программа приходит как 03/08/2021
, что совершенно неправильно. Поскольку год увеличивается, и полная дата неверна. Пожалуйста, сообщите, как я могу исправить свою программу для достижения той же даты.Получение разного формата даты при конверсии в java
public class DateFormattingTest {
private static final SimpleDateFormat outputDate = new SimpleDateFormat(
"dd/MM/yyyy");
public static void main(String[] args) {
System.out.println ("03/20/2020:" + extractDate("03/20/2020"));
DateFormattingTest test = new DateFormattingTest();
convertDate(test, "03/20/2020");
}
public static Date extractDate(String dateStr) {
String [] datePatterns = {"yyyy-MM-dd", "dd-MM-yyyy","MM/dd/yyyy" };
Date date = null;
try {
date = DateUtils.parseDate(dateStr, datePatterns);
}
catch (Exception except) {
except.printStackTrace();
}
return date;
}
private static void convertDate(DateFormattingTest test, String dateString) {
java.util.Date date = test.convertStringToDate(dateString);
System.out.println(dateString + " -> " + outputDate.format(date));
}
public java.util.Date convertStringToDate(String stringValue) {
String[] formatStrings = { "dd/MM/yy", "dd-MM-yy", "dd-MMM-yyyy" };
for (String formatString : formatStrings) {
try {
java.util.Date date = new SimpleDateFormat(formatString)
.parse(stringValue);
return date;
} catch (ParseException e) {
}
}
return null;
}
}
Ваш оригинальный 'дата String', кажется, в формате' ММ/дд/yyyy' , который используется 'extractDate', но ваш' convertStringToDate' использует формат 'dd/MM/yyyy'. – MadProgrammer
должен добавить MM/dd/yyyy также в массив –
Это было бы хорошим началом – MadProgrammer