我尝试从字符串中解析日期:
String dateString = "Fr, 1. Jan";
DateFormat format = new SimpleDateFormat("EE, d. MMM");
Date date = null;
try {
date = format.parse(dateString);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(format.format(date));
我得到的输出是这些:
Do, 1. Jan
为什么会发生这种情况,为什么输出与输入不同?
最佳答案
你忘记了年份。当您解析它时,您将得到 1970 年(星期五将被忽略)。当您向后解析时,您将解析日期 1970 年 1 月 1 日,这是一个星期四。这应该有效:
String dateString = "Fr, 1. Jan";
DateFormat format = new SimpleDateFormat("EE, d. MMM");
Date date = null;
try {
date = format.parse(dateString);
} catch (Exception e) {
e.printStackTrace();
}
date.setYear(new Date().getYear()); //alternativ: date.setYear(2016);
System.out.println(date);
System.out.println(format.format(date));
关于Java:如何正确解析字符串到日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35040945/