Java:将字符串日期转换为月份名称年份 (MMM yyyy)

新手上路,请多包涵

我是 Java 的新手。我正在尝试将日期从字符串转换为 MMM yyyy 格式(2016 年 3 月)。我试过这个

Calendar cal=Calendar.getInstance();
SimpleDateFormat month_date = new SimpleDateFormat("MMM yyyy");
String month_name = month_date.format(cal.getTime());
System.out.println("Month :: " + month_name);  //Mar 2016

它工作正常。但是当我使用

String actualDate = "2016-03-20";

它不工作。帮帮我,怎么解决。

原文由 Nagarjuna Reddy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 512
2 个回答

您的格式必须与您的输入匹配

对于 2016-03-20

格式应该是(只使用第二个 SimpleDateFormat 对象)

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");


完整答案

SimpleDateFormat month_date = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String actualDate = "2016-03-20";

Date date = sdf.parse(actualDate);

String month_name = month_date.format(date);
System.out.println("Month :" + month_name);  //Mar 2016


使用 java.time java-8

 String actualDate = "2016-03-20";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH);
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("MMM yyyy", Locale.ENGLISH);
DateTimeFormatter dtf3 = DateTimeFormatter.ofPattern("MMMM yyyy", Locale.ENGLISH);
LocalDate ld = LocalDate.parse(actualDate, dtf);
String month_name = dtf2.format(ld);
System.out.println(month_name); // Mar 2016
String fullMonthAndYear = dtf3.format(ld);
System.out.println(fullMonthAndYear); // March 2016

原文由 Yassin Hajaj 发布,翻译遵循 CC BY-SA 4.0 许可协议

试试这个代码:

 DateFormat df = new SimpleDateFormat("dd-MMMM HH:mm a");
Date date = new Date(System.currentTimeMillis());
String infi = df.format(date);

输出应该是:

 11-May 4:47 PM

原文由 Moin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题