2014-09-20 320 views
0

嗨,我需要將日期(無格式)的字符串表示形式轉換爲日期對象並將其轉換回字符串(具有特定格式)將字符串轉換爲日期並將日期轉換回字符串

這是我迄今爲止所嘗試的,輸出沒有像預期的那樣出現,而是打印出類似於08140009的東西 - 任何想法是什麼

請提供任何建議。

我的代碼是:

public String getDateBackToCST(String createDate){ 

    SimpleDateFormat dateFormatter = new SimpleDateFormat("MMddyyyy"); 
    TimeZone obj = TimeZone.getTimeZone("CST"); 
    dateFormatter.setTimeZone(obj); 
    Date createdDate = null; 

    try { 
     createdDate = dateFormatter.parse(createDate); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    return dateFormatter.format(createdDate); 
} 
+0

什麼是'createDate'的價值? – 2014-09-20 18:06:09

+0

2014-09-14它有不同的格式或它可能是日期字符串 – 2014-09-20 18:09:32

+0

Sat Sep 20 23:39:04 IST 2014 – 2014-09-20 18:10:14

回答

0

您需要爲特定的SimpleDateFormat適當的標誌。您有2個選項來指定時區zZ並指定日期名使用E這樣

import java.text.ParseException; 
import java.text.SimpleDateFormat; 

public class Main { 



    public static void main(String[] args) throws ParseException { 

     String date = "Sat Sep 20 23:39:04 IST 2014 "; 
     SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy"); 
     System.out.println(sdf.parse(date)); 

    } 
} 
+0

是的,這是正確的,但每當我們調用分析方法,我們將失去時區信息哪個Date對象將不包含。我想返回的字符串在CST時區 – 2014-09-20 18:18:01

+0

@manjunathacitragar日期對象從不與任何時區關聯 – SparkOn 2014-09-20 18:19:20

+0

是的,我同意..傳遞給該函數的字符串createDate在CST時區,當我解析它並將其格式化回來我只希望它在CST時區。 – 2014-09-20 18:23:48