如何在Java中将一种日期格式转换为另一种日期格式?

如何在Java中将一种日期格式转换为另一种日期格式?,java,date,format,data-conversion,Java,Date,Format,Data Conversion,我有一个变量myDateString,其中包含一个日期字符串,如下所示: 2008-06-20 15:30:11.656 我试图找出如何将其从当前格式转换为以下格式: 2008年6月20日 我试图使用SimpleDataFormat来实现这一点,但我似乎无法完全理解。到目前为止我有 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); Date myDate = sdf.parse(myDateString

我有一个变量
myDateString
,其中包含一个日期字符串,如下所示:

2008-06-20 15:30:11.656

我试图找出如何将其从当前格式转换为以下格式:

2008年6月20日

我试图使用SimpleDataFormat来实现这一点,但我似乎无法完全理解。到目前为止我有

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date myDate = sdf.parse(myDateString);
System.out.println(????);
我最初的想法是使用日期方法,如getDay()、getMonth()等,然后将所有这些方法连接到我想要的字符串中。不幸的是,据我所知,没有打印月名的方法,只有月号


如何将我的日期字符串转换为Java中所需的日期输出?

如果您使用date对象(注意@realponsum的注释),您需要这样做

public static void main(String[] args) throws ParseException {
    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    Date d = f.parse("2008-06-20 15:30:11.656"); // Format String to a dateobject with the format provided by the String.
    SimpleDateFormat f2 = new SimpleDateFormat("MMMM dd, yyyy"); // MMMM for full month name
    System.out.println(f2.format(d)); // Use the second format to create the desired format as String with d as input.
}

您需要两个
SimpleDataFormat
。一个是使用输入格式从
String
->
Date
,另一个是使用outputformat从
Date
->
String
有充分的理由使用
日期
对象吗?该类已经过时,编写得很糟糕,最好在Java8中使用
java.time
,或者在java的早期版本中使用Joda time。@realpoint no。我只是在谷歌上搜索一下就找到了。我可以肯定地给java.time看一看@KevinEsche你能再详细说明一下吗?我还是搞不懂。我执行了上面的操作,但是在创建myDate之后,我创建了另一个新的SimpleDataFormat格式(“MMMM d,yyyy”),然后解析myDate.toString()并将结果转换为字符串。我做错了什么?