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

标签 java date

<分区>

我是 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";

它不起作用。帮帮我,如何解决这个问题。

最佳答案

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

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

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

关于Java:将字符串日期转换为月份名称年份 (MMM yyyy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113530/

相关文章:

java - 如何遍历数据库中的子项并将它们应用于变量

java - 如何在 Java 中存储类似 Matrix 或 Table 的数据并有效地从中检索?

mysql - Cakephp 找到连接两列

asp.net - 日期正则表达式验证器

java - 检索目录时 edtFTPj Java 错误

java - 使用 Monetary API java 进行格式化的超过 2 精度舍入

java - 多维数组调试outofboundsException

java - Java中将一长串日期和时间转换为时间戳格式

javascript - Angular js - isDate() 将不起作用

java - 如何在java中获取默认日期模式?