【发布时间】:2018-02-24 22:51:57
【问题描述】:
我对日期的 java 转换有疑问。 我输入了一个字符串 YYYYMMDD,它转换为 long 并且通过执行代码输出是错误的
try {
//Current date to dd-mm-yyyy
Date currentDate = new Date(20161205); //or
DateFormat df = new SimpleDateFormat("dd-mm-yyyy");
String strCurrentDate = df.format(currentDate);
System.out.println("Date is " + strCurrentDate);
} catch (Exception e) {
System.out.println("Exception :" + e);
}
输出是:01-49-1970 为什么??我该如何解决这个问题
【问题讨论】:
-
请不要使用旧的
java.util.Date类。您应该改用java.time包中的适当类。 -
您的默认时区是什么?输出中的 49 看起来很奇怪。
-
仅供参考,麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat现在是 legacy,被 Java 8 和 Java 中内置的 java.time 类所取代9. 见Tutorial by Oracle。
标签: java string date-format