2016-04-07 25 views
2

Aşağıdaki web sitesine göre İngiltere'de gün ışığından yararlanma saati şu saatte başlar: 27 Mar-2016 1:00:00 (24 saat zaman formatı) http://www.timeanddate.com/time/change/uk/london?year=2016 Öyleyse neden aşağıdaki kod yanlış yazdırılıyor?DST Handling In Java 5 Köşe Tarihler için

import java.text.ParseException; 
import java.util.Calendar; 
import java.util.GregorianCalendar; 
import java.util.TimeZone; 

public class BSTGMTDetector 
{ 
    public static void main(String[] args) throws ParseException 
    { 
     TimeZone def = TimeZone.getTimeZone("Europe/London");  

     Calendar cal = new GregorianCalendar(); 

     cal.clear(); 
     cal.set(2016, 2, 27,2,01,01); 

     boolean isInDaylight = def.inDaylightTime(cal.getTime()); 
     System.out.println("Date[" + cal.getTime() + "] is in DST[" + isInDaylight + "]");  

    } 
} 


Output : Date[Sun Mar 27 02:01:01 IST 2016] is in DST[false] 

cevap

0

sistem çağrısı

def.inDaylightTime(cal.getTime()); 

tarihi geçirildiğinde

Calendar cal = new GregorianCalendar(); 

Bölge cal için değişken IST.So olduğu, tanımladığınız IST.When korumak gibi görünüyor IST saat diliminde bu yöntem. DST 27th MAR, 06: 30: 00 IST'de DST'ye başlar. Bundan dolayı O/P davranışınız.

+0

SimpleDateFormat'ı tarih saatini ayrıştırma için kullanın ve takvimdeki ayın 0'dan başlayan bir ay dizinine sahip olduğunu unutmayın (Jan için) – Hailey

+0

Daha iyi sonuçlar için – Hailey