我运行了下面的代码并得到了模棱两可的结果:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
public class Test
{
public static void main(String[] args)
{
DateFormat format = new SimpleDateFormat("yyyyMMdd");
DateFormat secFormat = new SimpleDateFormat("ddMMYYYY");
String date = "20171231";
try {
Date newDate = format.parse(date);
System.out.println("Normal: "+newDate);
System.out.println("Actual:
"+secFormat.format(newDate));
} catch (ParseException ex) {
System.out.println("Exception");
}
}
}
我得到的上述结果如下: 正常:太阳12月31日00:00:00 UTC 2017 实际:31122018
当值31122017时,31122018被返回。任何人都可以帮助我在项目中获得正确的结果。
答案 0 :(得分:0)
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
以下是SDF所有不同格式选项的链接。
你的问题几乎肯定是在yyyy / YYYY的差异中。
参考此链接以确保您正确检查格式!
答案 1 :(得分:0)
试试这个:
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat secFormat = new SimpleDateFormat("ddMMyyyy");
String date = "20171231";
try {
Date newDate = format.parse(date);
System.out.println("Normal: "+newDate);
System.out.println("Actual: " +secFormat.format(newDate));
} catch (Exception ex) {
System.out.println("Exception");
}