java.text.ParseException:不可解析的日期:";23《2021年马尔佐法案》;
我有一个以字符串类型出现的日期,如下所示:java.text.ParseException:不可解析的日期:";23《2021年马尔佐法案》;,java,spring,Java,Spring,我有一个以字符串类型出现的日期,如下所示: String fecha = "23 de marzo de 2021"; String resultado = "23-03-2021"; 但我想更改日期如下: String fecha = "23 de marzo de 2021"; String resultado = "23-03-2021"; 我尝试使用以下选项,但无法: try { Simple
String fecha = "23 de marzo de 2021";
String resultado = "23-03-2021";
但我想更改日期如下:
String fecha = "23 de marzo de 2021";
String resultado = "23-03-2021";
我尝试使用以下选项,但无法:
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("23 de marzo de 2021");
System.out.println("Fecha --->" + date1);
} catch (Exception e) {
System.out.println(e);
}
dd'de'MMMM'de'yyyy
Locale
与日期时间格式化/解析API一起使用import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdfInput = new SimpleDateFormat("dd 'de' MMMM 'de' yyyy", new Locale("es", "ES"));
Date date1 = sdfInput.parse("23 de marzo de 2021");
// Default string i.e. Date#toString implementation
System.out.println(date1);
// Custom string
SimpleDateFormat sdfOutput = new SimpleDateFormat("dd-MM-yyyy", new Locale("es", "ES"));
System.out.println(sdfOutput.format(date1));
}
}
Tue Mar 23 00:00:00 GMT 2021
23-03-2021
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("dd 'de' MMMM 'de' uuuu", new Locale("es", "ES"));
LocalDate date1 = LocalDate.parse("23 de marzo de 2021", dtfInput);
// Default string i.e. LocalDate#toString implementation
System.out.println(date1);
// Custom string
DateTimeFormatter dtfOutput = DateTimeFormatter.ofPattern("dd-MM-uuuu", new Locale("es", "ES"));
System.out.println(dtfOutput.format(date1));
}
}
2021-03-23
23-03-2021
输出:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdfInput = new SimpleDateFormat("dd 'de' MMMM 'de' yyyy", new Locale("es", "ES"));
Date date1 = sdfInput.parse("23 de marzo de 2021");
// Default string i.e. Date#toString implementation
System.out.println(date1);
// Custom string
SimpleDateFormat sdfOutput = new SimpleDateFormat("dd-MM-yyyy", new Locale("es", "ES"));
System.out.println(sdfOutput.format(date1));
}
}
Tue Mar 23 00:00:00 GMT 2021
23-03-2021
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("dd 'de' MMMM 'de' uuuu", new Locale("es", "ES"));
LocalDate date1 = LocalDate.parse("23 de marzo de 2021", dtfInput);
// Default string i.e. LocalDate#toString implementation
System.out.println(date1);
// Custom string
DateTimeFormatter dtfOutput = DateTimeFormatter.ofPattern("dd-MM-uuuu", new Locale("es", "ES"));
System.out.println(dtfOutput.format(date1));
}
}
2021-03-23
23-03-2021
请注意,java.util
date-time API及其格式化API,SimpleDataFormat
已经过时且容易出错。建议完全停止使用,并切换到*
使用现代日期时间API:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdfInput = new SimpleDateFormat("dd 'de' MMMM 'de' yyyy", new Locale("es", "ES"));
Date date1 = sdfInput.parse("23 de marzo de 2021");
// Default string i.e. Date#toString implementation
System.out.println(date1);
// Custom string
SimpleDateFormat sdfOutput = new SimpleDateFormat("dd-MM-yyyy", new Locale("es", "ES"));
System.out.println(sdfOutput.format(date1));
}
}
Tue Mar 23 00:00:00 GMT 2021
23-03-2021
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("dd 'de' MMMM 'de' uuuu", new Locale("es", "ES"));
LocalDate date1 = LocalDate.parse("23 de marzo de 2021", dtfInput);
// Default string i.e. LocalDate#toString implementation
System.out.println(date1);
// Custom string
DateTimeFormatter dtfOutput = DateTimeFormatter.ofPattern("dd-MM-uuuu", new Locale("es", "ES"));
System.out.println(dtfOutput.format(date1));
}
}
2021-03-23
23-03-2021
输出:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdfInput = new SimpleDateFormat("dd 'de' MMMM 'de' yyyy", new Locale("es", "ES"));
Date date1 = sdfInput.parse("23 de marzo de 2021");
// Default string i.e. Date#toString implementation
System.out.println(date1);
// Custom string
SimpleDateFormat sdfOutput = new SimpleDateFormat("dd-MM-yyyy", new Locale("es", "ES"));
System.out.println(sdfOutput.format(date1));
}
}
Tue Mar 23 00:00:00 GMT 2021
23-03-2021
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("dd 'de' MMMM 'de' uuuu", new Locale("es", "ES"));
LocalDate date1 = LocalDate.parse("23 de marzo de 2021", dtfInput);
// Default string i.e. LocalDate#toString implementation
System.out.println(date1);
// Custom string
DateTimeFormatter dtfOutput = DateTimeFormatter.ofPattern("dd-MM-uuuu", new Locale("es", "ES"));
System.out.println(dtfOutput.format(date1));
}
}
2021-03-23
23-03-2021
从了解有关现代日期时间API的更多信息
*无论出于何种原因,如果您必须坚持使用Java6或Java7,您可以使用哪个backport将大部分Java.time功能移植到Java6&7。如果您正在为Android项目工作,并且您的Android API级别仍然不符合Java-8,请检查并确认。
我投票结束这个问题,因为它不在我的讨论范围内English@Dharman-我已经把这三句话翻译成英语,代码保持原样。@ArvindKumarAvinash我明白了,但我们真的不应该翻译问题。下次请把它们关上。我不认为这个问题将来会很有用。也许你知道可以用一个副本来结束这个问题?@Dharman-没有确切的副本,例如,正如在这篇评论中提到的,与我搜索的重复目标不同。嗨@DANIEL,翻译是否准确地反映了你的话/问题?提问者有责任用英语在堆栈溢出上发帖,而不是回答者的特权。请不要回答非英语问题。它们与堆栈溢出无关,必须以“需要澄清”或“不合适”的理由关闭