- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
/**
     * метод возвращает int-овое смещение тайм-зоны
     */
    
    public long getIntOffset() {
        if (timeZone == null) {
            return 0;
        }
        return timeZone.getOffset(System.currentTimeMillis());
        Calendar now = Calendar.getInstance();
        int millisPerDay = 
            now.get(Calendar.HOUR) * ONE_HOUR + 
            now.get(Calendar.MINUTE) * ONE_MINUTE +
            now.get(Calendar.SECOND) * ONE_SECOND;
        int offset = timeZone.getOffset(
                now.get(Calendar.ERA), 
                now.get(Calendar.YEAR), 
                now.get(Calendar.MONTH),
                now.get(Calendar.DAY_OF_MONTH), 
                now.get(Calendar.DAY_OF_WEEK), 
                millisPerDay
            );
        int diff = now.get(Calendar.ZONE_OFFSET);
        boolean isNegative = (offset < 0);
        long intOffset = Math.abs(offset) - Math.abs(diff);
        //todo здесь наверное как-то по-лучше можно выделить часы 
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
        String time = sdf.format(new Date(intOffset));
        Date d;
        try {
            d = sdf.parse(time);
        } catch (ParseException e) {
            d=null;
        }
        if (d!=null)
            return (isNegative?-1:1) * d.getHours()*3600000;
        else 
            return 0;
    }
                                     
        
            Этот "шедевр" был написан не индусами, а суровыми программистами Новосиба ;) Это чудо долго работало, вплоть до обновления tzdata на 2011. Придется удалить, а жаль...