2013-03-21 87 views
2

印度標準時間(IST)是格林尼治標準時間前5:30(5小時30分鐘)。我們將其顯示爲GMT + 5.5。獲得格林威治標準時間

是否有任何方法可以按時區查找此值(在上面的情況下,值= 5.5)?

在我的Android應用程序中,我可以獲取設備時區。但如何使用設備時區獲取此值?

回答

2
double timezoneval = 0.0; 
     Calendar cal = Calendar.getInstance(); 
     cal.set(mn.Year(), mn.Month(), mn.Day(), mn.Hour(), mn.minute(), 
       (int) mn.second()); 
     TimeZone tz = TimeZone.getDefault(); 
     boolean t = tz.inDaylightTime(cal.getTime()); 
     if (t) 
      timezoneval = ((TimeZone.getDefault().getRawOffset()) 
        /(60 * 60 * 1000D) + (TimeZone.getDefault() 
        .getDSTSavings()/(60 * 60 * 1000D))); 
     else 
      timezoneval = ((TimeZone.getDefault().getRawOffset())/(60 * 60 * 1000D)); 

你可以試試這個代碼。這會給你時區的價值。如果你想要不同的時區值;只是改變 TimeZone tz = TimeZone.getDefault();

TimeZone tz = TimeZone.getTimeZone("Asia/Kolkata"); 
     TimeZone.setDefault(tz); 

它會爲你工作。

+0

「Asia/Kolkata」可以被不同的有效時區字符串替換。 – 2013-03-21 09:41:37

+0

我可以使用'tz.getRawOffset()'而不是'TimeZone.getDefault()。getRawOffset()'? – Bishan 2013-03-21 10:43:25

+0

代碼中的「mn」是什麼? 'cal.set(mn.Year(),mn.Month(),mn.Day(),mn.Hour(),mn.minute(), (int)mn.second());' – Bishan 2013-03-21 10:52:49

0

嘗試:

TimeZone.getDefault(); 

getDefault()返回當前設備的時區的詳細信息。然後,您可以撥打getOffset()來獲得UTC與此時區之間的差異。

0

試試這個代碼

public class Sample { 


public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    try { 
     String dateStr = "2010-06-14 02:21:49-0400"; 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"); 
     TimeZone tz = TimeZone.getDefault(); 
     sdf.setTimeZone(tz); 
     Date date = sdf.parse(dateStr); 

     sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a"); 
     String newDateStr = sdf.format(date); 

     System.out.println(newDateStr); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
} 

輸出應該喜歡這個

2010-06-14上午08時21分49秒

-1

這實際上是我需要的。

double rawOffset = TimeZone.getDefault().getRawOffset(); 

rawOffset = rawOffset/(60 * 60 * 1000); 

System.out.println("rawOffset : " + rawOffset); 
+0

它不適用於日光節約狀態和國家。 – 2013-03-21 09:47:22

+0

好的。謝謝你的提示。 – Bishan 2013-03-21 10:42:11

相關問題