2012-07-11 27 views
0

我使用PostgreSQL數據庫服務器。一列有「帶時區的時間戳」,我通過XML上傳時間字符串,如'2012-07-11 04:45:18 + GMT + 05:30',但它接受這種格式'2012-02-16 19:47: 22.652 + 05:30'獲取PostgreSQL的格式化時間字符串

那麼,如何在Android上格式化時間字符串?以下是我的功能。

Calendar c=Calendar.getInstance(); 
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ssZ"); 
Log.v("AKDN", "Time string is:"+formatter.format(c.getTime())); 
return formatter.format(c.getTime()); 
+0

對不起,你的問題不太清楚。您想做什麼? – Keppil 2012-07-11 12:11:27

+0

我想要時間字符串像'2012-02-16 19:47:22.652 + 05:30'在android中。 – 2012-07-11 12:31:13

+0

你是否按照你想要的方式工作? – slybloty 2012-07-13 16:11:19

回答

1

這對我工作得很好:

private String getTime() 
{ 
    Calendar c = Calendar.getInstance(); 
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SZ"); 
    return formatter.format(c.getTime()); 
} 

在我的情況下,它輸出:

2012-07-11 06:32:46.118-0600 

編輯: 「:」 到
您可以在添加你的字符串。

或者您可以創建另一個函數來格式化時區。像這樣:

private String formatTimeZone(TimeZone tz) 
{ 
    DecimalFormat format = new DecimalFormat("00"); 
    String timeZone = new String(""); 
    int offset = tz.getRawOffset(); 

    if(offset != 0) 
    { 
     int hours = Math.abs((offset/(60 * 1000))/60); 
     int minutes = Math.abs((offset/(60 * 1000)) % 60); 
     timeZone += offset < 0 ? "-" : "+"; 
     timeZone += format.format(hours); 
     timeZone += ":"; 
     timeZone += format.format(minutes); 
    } 

    return timeZone; 
} 
+0

這讓我輸出'2012-07-11 06:21:14.624 + 0530',但實際上我想'2012-02-16 19:47:22.652 + 05:30'。 '+0530'中的結果字符串中沒有':'。 – 2012-07-11 12:53:55

+0

有沒有簡單的方法做到這一點。檢查我的編輯。 – slybloty 2012-07-11 13:39:39

相關問題