2015-07-20 68 views
4

我有這樣的方法:如何將日期日期轉換爲java中的西式日期?

//datetime is millisecond 
public static String getStringDateFormatMonth(long datetime) { 
      String yearlessPattern = "yyyy年MM月"; 
      SimpleDateFormat yearlessSDF = new SimpleDateFormat(yearlessPattern); 
      Date date = new Date(datetime); 
      String datestr = yearlessSDF.format(date); 
      return datestr; 

     } 

public static String getStringDateFormat(long datetime) { 
      String yearlessPattern = "dd日"; 
      SimpleDateFormat yearlessSDF = new SimpleDateFormat(yearlessPattern); 
      SimpleDateFormat sdfDay = new SimpleDateFormat("E", Locale.JAPAN); 
      Date date = new Date(datetime); 
      String datestr = yearlessSDF.format(date) + "(" + sdfDay.format(date) + ")"; 
      return datestr; 

     } 

Intialize字符串:

String a = LifelogUtil.getStringDateFormatMonth(currentDate.getTimeInMillis()) 
        + LifelogUtil.getStringDateFormat(currentDate.getTimeInMillis()); 

,結果我得到的是

2015年07月19日(日) 

現在我想對這個日期轉換回西方日期作爲這種格式「yyyy-MM-dd」,但我無法想象如何做到這一點。請幫幫我!謝謝!

回答

2

您提供的合作伙伴是本地日語格式,因此您可以使用默認選項。 爲了您的方便請參閱這裏http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html
Java文檔試試這個

DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, new Locale("ja")); 
System.out.println(df.parse("2015年07月20日")); 
System.out.println(df.format(new Date())); 

輸出應該是這樣的:

Mon Jul 20 00:00:00 IST 2015 
2015年07月20日 

參考以前ideone答案在這裏IDEONE

+0

非常好,謝謝;) – Kakashi

2

不要轉換一個對象轉換爲一個字符串,使用它並解析它。請Date對象的原PVC門和渲染輸出(只讀)在任何你需要它:

// use an object internally: 
    Date anyDate = new Date(); 

    // can also be SimpleDateFormat, etc: 
    DateFormat japaneseDf = DateFormat.getDateInstance(DateFormat.FULL, Locale.JAPAN); 
    DateFormat germanDf = DateFormat.getDateInstance(DateFormat.FULL, Locale.GERMANY); 

    // when you need to display it somewhere render it appropriately, not changing the data: 
    System.out.println(japaneseDf.format(anyDate)); 
    System.out.println(germanDf.format(anyDate)); 

打印出:

2015年7月20日 (月曜日) 
Montag, 20. Juli 2015 
0

這應該幫助。

 SimpleDateFormat jp= new SimpleDateFormat("yyyy年MM月dd日(E)",Locale.JAPAN); //Japan Format 
     SimpleDateFormat west = new SimpleDateFormat("yyyy-MM-dd"); //Western Format 
     try{ 
      Date date = jp.parse(a); //convert the String to date 
      System.out.println(west.format(date));//format the date to Western 
     }catch (Exception ex){ 
      System.out.println(ex.getMessage()); 
     }