2016-03-28 13 views
0

Milisaniye cinsindeyim ve saat, dakika ve saniye olarak değiştirmek istiyorum. Bu kodu denedim ama bir şekilde şu anki saatlere ulaşamıyorum. Örnek: Zaman 3:50 ayarlıyorum ama 7:50 aldım. Bu neden oluyor?Neden zaman ayarlıyorum ama farklı mıyım?

Bu benim, olsun ve ekran zamanını ayarlamak nasıl edilir: cevaplar yukarıda sadece yapacaktır iken

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.MINUTE,timePicker.getCurrentMinute()); 
calendar.set(Calendar.HOUR_OF_DAY,timePicker.getCurrentHour()); 
long alarm3 = calendar.getTimeInMillis(); 
     long alarm4 = (alarm3/(1000*60*60))%24; 
     long alarm5 = (alarm3/(1000*60))%60; 
     long alarm6 = (alarm3/1000)%60; 
Log.i("Alarm1","Hours:" + Long.toString(alarm4)); 
     Log.i("Alarm1","Minutes:" + Long.toString(alarm5)); 
     Log.i("Alarm1","Seconds:" + Long.toString(alarm6)); 
+0

Yukarı-aşağı okları kullanarak zamanı ayarladınız mı veya metni kendiniz mi düzenleyeceksiniz? !! –

+0

@ muhammed-refaat Kullandığım görünümü kastediyorsanız, bir zaman ölçer kullanırım. Eğer değilse, lütfen –

+0

sorunuzu açıklayın. Bir TimePicker kullandığınızı biliyorum, size zamanı ayarlamak için nasıl kullandığınızı soruyorum. TimePicker iki şekilde, ilk olarak (artı/mayın) düğmeleri ve android klavye tarafından ikincisi olarak kullanılabilir, bu yüzden android klavye ile kullanırsanız, bu sizin sorununuz olabilir ve sonra nedenini açıklayacağım. –

cevap

1

kullanabilirsiniz İşe yarıyor, çözümünüzün neden böyle olmadığını merak ediyor olabilirsiniz. Bu muhtemelen saat dilimi ofseti yüzünden. Takvim örneğini aldığınızda, yerel saatinizi, yani saat diliminizi de miras aldığından, bu zaman dilimini alırsınız. Ardından varsayarak uygulamanızın timePicker aynı saat diliminde çalışır, sen Consistenly dakika ve saat ayarlayın:

calendar.set(Calendar.MINUTE,timePicker.getCurrentMinute()); 
calendar.set(Calendar.HOUR_OF_DAY,timePicker.getCurrentHour()); 

ama sonunda bu özel yöntem UTC zamanı döndürür: Ben

long alarm3 = calendar.getTimeInMillis(); 

TZ ofsetinizin 4 saat olduğunu tahmin edin.

+0

Bu, bir şekilde uygulamamın çalışmasını etkilemez mi? –

+0

Olmamalıdır - alarm, uygulamanın süresiyle aynı ofset ile tetiklenir, bu yüzden sadece (UTC) zamanını komik gösteren günlükleriniz olur. – ptrk

+0

Değirmenlerde zaman kullanarak alarm ayarlamamın nasıl iyi olduğunu düşünüyorsunuz? –

1

Sen SimpleDateFormat

public static String getOnlyTimeFromMillis(long millis) { 
    SimpleDateFormat apiFormat = new SimpleDateFormat("HH:mm:ss"); 
    Date date = new Date(millis); 
    return apiFormat.format(date); 
} 
0

kullanın Bu işlev

public static String getTimeFromMilliseconds(long milliseconds) { 

     return (new SimpleDateFormat("HH:mm:ss")).format(new Date(milliseconds)); 
    } 
İlgili konular