Java SimpleDateFormat 解析奇数结果
Java SimpleDateFormat parsing odd result
我有一个关于 Class SimpleDateFormat 的问题。
我想转换日期字符串的格式。
日期是 21.11.2011,我希望将其转换为 111121。
这是我的代码:
public class Main {
private static final SimpleDateFormat oldSimpleDateFormat = new SimpleDateFormat("dd.MM.YYYY");
private static final SimpleDateFormat newSimpleDateFormat = new SimpleDateFormat("YYMMdd");
private static String oldDate = "21.11.2011";
private static Date myDate = oldSimpleDateFormat.parse(oldDate, new ParsePosition(0));
private static String newDate = newSimpleDateFormat.format(myDate);
public static void main(String[] args){
System.out.println(myDate);
System.out.println(newDate);
}
}
控制台中的结果是 Mon Jan 03 00:00:00 CET 2011 和 110103。
所以格式化部分工作正常,但解析部分不符合预期。
当您应该使用 yyyy
(小写)时,您却使用了 YYYY
(大写)。
Y
表示 "Week year"。 y
表示 "year".
检查 SimpleDateFormat 的 javadoc。这通常是 uppercase/lowercase 个用于不同事物的字母的问题。在这种情况下,大写 Y 代表 "week year"(无论是什么),小写 y 代表 "year"。将 Y 更改为 y 即可。
我有一个关于 Class SimpleDateFormat 的问题。 我想转换日期字符串的格式。 日期是 21.11.2011,我希望将其转换为 111121。
这是我的代码:
public class Main {
private static final SimpleDateFormat oldSimpleDateFormat = new SimpleDateFormat("dd.MM.YYYY");
private static final SimpleDateFormat newSimpleDateFormat = new SimpleDateFormat("YYMMdd");
private static String oldDate = "21.11.2011";
private static Date myDate = oldSimpleDateFormat.parse(oldDate, new ParsePosition(0));
private static String newDate = newSimpleDateFormat.format(myDate);
public static void main(String[] args){
System.out.println(myDate);
System.out.println(newDate);
}
}
控制台中的结果是 Mon Jan 03 00:00:00 CET 2011 和 110103。 所以格式化部分工作正常,但解析部分不符合预期。
当您应该使用 yyyy
(小写)时,您却使用了 YYYY
(大写)。
Y
表示 "Week year"。 y
表示 "year".
检查 SimpleDateFormat 的 javadoc。这通常是 uppercase/lowercase 个用于不同事物的字母的问题。在这种情况下,大写 Y 代表 "week year"(无论是什么),小写 y 代表 "year"。将 Y 更改为 y 即可。