2014-06-27 54 views
1

與2014年6月一樣,我使用String格式的日期。我想將它轉換爲日期。這個日期可以有任何一天。將Mon/yyyy轉換爲日期

如何實現這一目標?我嘗試了下面的代碼,但沒有奏效。

String fromdate="Jun/2014"; 
    SimpleDateFormat format = new SimpleDateFormat("mm/yyyy"); 
    String date = format.format(fromdate); 
+5

'MMM/yyyy'看到的Javadoc –

+1

不要忘記設置正確的語言環境,如果您的應用程序可以運行的地方,其中「君」不被識別爲月份名稱。 – Pshemo

+0

[日期和時間模式](http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) –

回答

1

javadoc對此有相當不錯的解釋。 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

我只是在上面的鏈接提供的示例粘貼。可以看出,它應該是對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 
+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); 

您的結果: 孫軍01 00:00:00 ECT 2014

+0

謝謝。現在我想將這個結果轉換成可以傳遞給sql查詢的數據。如何實現這一目標?我嘗試了幾件事,但沒有奏效。 。 – Parag

+1

查詢Q = getEntityManager()createNativeQuery( 「選擇從用戶*其中userdate =:userDate); \t \t q.setParameter(」 userDate」,日期); \t \t q.getResultList(); – Tex

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(); 
     } 
0

避免java.util.Date

在其他答案(.Date,.Calendar,.SimpleDateFormat)中使用的類是notori麻煩,設計和實施都有缺陷。避免它們。相反,請使用喬達時間或java.time包在Java中新的8

日期 - 只有類

與其他的答案中使用的類的另一個問題:沒有辦法來表示,只有日期,沒有任何時間部分。 Joda-Time和java.time都爲此提供了一個LocalDate類。

Joda-Time

以下是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