2013-06-12 134 views
0

我寫這篇文章的應用程序,需要處理DST在android系統。我寫了一個小測試代碼,可以做到以下幾點。另外,在這種情況下,我不使用網絡提供的日期時間。如何在android中處理時區和日光節約?

如果我運行應用程序,顯示當前時間,並轉到Android設置和更改時區,而無需退出應用程序,然後從應用軟件獲取當前時間,將不給我新的時間變化。

UPDATE以下是代碼

btnStart.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Date dt = new Date(System.currentTimeMillis()); 
       txtViewStart.setText(sdf.format(dt)); 
      } 
     }); 

     btnEnd.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       Date dt = new Date(System.currentTimeMillis()); 
       txtViewEnd.setText(sdf.format(dt)); 

      } 
     }); 

我怎樣才能在夏令時的情況下,也

+0

處理這個問題,以及是處理時間變化的代碼你onCreate()或onResume()方法?另外,你可以發佈上述代碼嗎? – verybadalloc

+0

我寫的只是返回onCreate()中當前日期時間的代碼。我將更新問題的代碼 –

+0

參見:https://stackoverflow.com/questions/36253913/how-to-detect-daylight-saving-time-transition-in-android –

回答

0
 TimeZone timezone = TimeZone.getTimeZone(selectManulTimeZoneString); 
    OR 
    TimeZone timezone = TimeZone.getDefault(); 
String TimeZoneName = timezone.getDisplayName(); 
int TimeZoneOffset = timezone.getRawOffset()/(60 * 60 * 1000); 
double hoursDiff = timezone.getDSTSavings()/(60 * 60 * 1000); 
Log.i("AM","DayLightSaving:" + hoursDiff);