我的字符串格式为2014年6月。我想把它转换成日期。这个日期任何一天都可以。
如何实现这一目标?我试过跟随代码,但它没有用。
String fromdate="Jun/2014";
SimpleDateFormat format = new SimpleDateFormat("mm/yyyy");
String date = format.format(fromdate);
答案 0 :(得分:3)
你应该试试
String fromdate = "Jun/2014";
SimpleDateFormat format = new SimpleDateFormat("MMM/yyyy");
Date date = null;
try {
date = format.parse(fromdate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(date);
你的结果: Sun Jun 01 00:00:00 ECT 2014
答案 1 :(得分:1)
javadoc对此有相当不错的解释。 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
我只是粘贴上面链接中提供的示例。可以看出,它应该是7月的MMM
Date and Time Pattern Result
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" 2001-07-04T12:08:56.235-07:00
"YYYY-'W'ww-u" 2001-W27-3
答案 2 :(得分:1)
String fromdate="Jun/2014";
SimpleDateFormat f = new SimpleDateFormat("MMM/yyyy");
try {
Date date = f.parse(fromdate);
String d = f.format(date);
System.out.println(d);
} catch (ParseException e) {
e.printStackTrace();
}
答案 3 :(得分:0)
其他答案(。日期,。日历,.SimpleDateFormat)中使用的类是众所周知的麻烦,在设计和实现方面都存在缺陷。避免他们。而是使用Java 8中的Joda-Time或java.time包。
其他答案中使用的类的另一个问题:无法表示仅限日期而没有任何时间部分。 Joda-Time和java.time都为此目的提供了LocalDate
类。
以下是Joda-Time 2.3中的示例代码。
String input = "Jun/2014";
DateTimeFormatter formatter = DateTimeFormat.forPattern( "MMM/yyyy" );
LocalDate localDate = formatter.parseLocalDate( input ); // Assumes the first of the month.
转储到控制台。
System.out.println( "input: " + input );
System.out.println( "localDate: " + localDate );
跑步时。
input: Jun/2014
localDate: 2014-06-01