【发布时间】:2017-10-23 02:41:27
【问题描述】:
我试图将日期从 yyyy-MM-dd 格式转换为 yyyy-MM 格式,当我使用输入“2012-10-22”运行以下代码时,它给我的输出是 2012-JAN 而不是2012 年 10 月。有什么想法我做错了吗?
public static String dateFormatter(String presentDate)
{
String formattedDate = "";
SimpleDateFormat tempFormat = new SimpleDateFormat("YYYY-MM-DD");
SimpleDateFormat finalFormat = new SimpleDateFormat("YYYY-MMM");
try {
Date currentFormat = tempFormat.parse(presentDate);
formattedDate = finalFormat.format(currentFormat);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return formattedDate;
}
【问题讨论】:
-
大小写对于 SimpleDateFormat 掩码非常重要
-
与
DateFormat的所有问题一样,请先咨询JavaDocs。Y是“周年” -
仅供参考,这段代码使用了麻烦的旧日期时间类,这些类现在是遗留的,被现代 java.time 类所取代。
-
使用 java.time 类:
YearMonth.from( LocalDate.parse( "2012-10-22" ) ).format( DateTimeFormatter.ofPattern( "uuuu-MMM" , Locale.US ) )➢2012-Oct见code run live at IdeOne.com
标签: java date jakarta-ee simpledateformat