package com.genersoft.iot.vmp.gb28181.bean; 
 | 
  
 | 
import gov.nist.core.InternalErrorHandler; 
 | 
import gov.nist.javax.sip.header.SIPDate; 
 | 
  
 | 
import java.util.*; 
 | 
  
 | 
/** 
 | 
 * 重写jain sip的SIPDate解决与国标时间格式不一致的问题 
 | 
 */ 
 | 
public class GbSipDate extends SIPDate { 
 | 
  
 | 
    /** 
 | 
     * 
 | 
     */ 
 | 
    private static final long serialVersionUID = 1L; 
 | 
     
 | 
    private Calendar javaCal; 
 | 
  
 | 
    public GbSipDate(long timeMillis) { 
 | 
        this.javaCal = new GregorianCalendar(TimeZone.getDefault(), Locale.getDefault()); 
 | 
        Date date = new Date(timeMillis); 
 | 
        this.javaCal.setTime(date); 
 | 
        this.wkday = this.javaCal.get(7); 
 | 
        switch(this.wkday) { 
 | 
            case 1: 
 | 
                this.sipWkDay = "Sun"; 
 | 
                break; 
 | 
            case 2: 
 | 
                this.sipWkDay = "Mon"; 
 | 
                break; 
 | 
            case 3: 
 | 
                this.sipWkDay = "Tue"; 
 | 
                break; 
 | 
            case 4: 
 | 
                this.sipWkDay = "Wed"; 
 | 
                break; 
 | 
            case 5: 
 | 
                this.sipWkDay = "Thu"; 
 | 
                break; 
 | 
            case 6: 
 | 
                this.sipWkDay = "Fri"; 
 | 
                break; 
 | 
            case 7: 
 | 
                this.sipWkDay = "Sat"; 
 | 
                break; 
 | 
            default: 
 | 
                InternalErrorHandler.handleException("No date map for wkday " + this.wkday); 
 | 
        } 
 | 
  
 | 
        this.day = this.javaCal.get(5); 
 | 
        this.month = this.javaCal.get(2); 
 | 
        switch(this.month) { 
 | 
            case 0: 
 | 
                this.sipMonth = "Jan"; 
 | 
                break; 
 | 
            case 1: 
 | 
                this.sipMonth = "Feb"; 
 | 
                break; 
 | 
            case 2: 
 | 
                this.sipMonth = "Mar"; 
 | 
                break; 
 | 
            case 3: 
 | 
                this.sipMonth = "Apr"; 
 | 
                break; 
 | 
            case 4: 
 | 
                this.sipMonth = "May"; 
 | 
                break; 
 | 
            case 5: 
 | 
                this.sipMonth = "Jun"; 
 | 
                break; 
 | 
            case 6: 
 | 
                this.sipMonth = "Jul"; 
 | 
                break; 
 | 
            case 7: 
 | 
                this.sipMonth = "Aug"; 
 | 
                break; 
 | 
            case 8: 
 | 
                this.sipMonth = "Sep"; 
 | 
                break; 
 | 
            case 9: 
 | 
                this.sipMonth = "Oct"; 
 | 
                break; 
 | 
            case 10: 
 | 
                this.sipMonth = "Nov"; 
 | 
                break; 
 | 
            case 11: 
 | 
                this.sipMonth = "Dec"; 
 | 
                break; 
 | 
            default: 
 | 
                InternalErrorHandler.handleException("No date map for month " + this.month); 
 | 
        } 
 | 
  
 | 
        this.year = this.javaCal.get(1); 
 | 
        this.hour = this.javaCal.get(11); 
 | 
        this.minute = this.javaCal.get(12); 
 | 
        this.second = this.javaCal.get(13); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public StringBuilder encode(StringBuilder var1) { 
 | 
        String var2; 
 | 
        if (this.month < 9) { 
 | 
            var2 = "0" + (this.month + 1); 
 | 
        } else { 
 | 
            var2 = "" + (this.month + 1); 
 | 
        } 
 | 
  
 | 
        String var3; 
 | 
        if (this.day < 10) { 
 | 
            var3 = "0" + this.day; 
 | 
        } else { 
 | 
            var3 = "" + this.day; 
 | 
        } 
 | 
  
 | 
        String var4; 
 | 
        if (this.hour < 10) { 
 | 
            var4 = "0" + this.hour; 
 | 
        } else { 
 | 
            var4 = "" + this.hour; 
 | 
        } 
 | 
  
 | 
        String var5; 
 | 
        if (this.minute < 10) { 
 | 
            var5 = "0" + this.minute; 
 | 
        } else { 
 | 
            var5 = "" + this.minute; 
 | 
        } 
 | 
  
 | 
        String var6; 
 | 
        if (this.second < 10) { 
 | 
            var6 = "0" + this.second; 
 | 
        } else { 
 | 
            var6 = "" + this.second; 
 | 
        } 
 | 
  
 | 
        int var8 = this.javaCal.get(14); 
 | 
        String var7; 
 | 
        if (var8 < 10) { 
 | 
            var7 = "00" + var8; 
 | 
        } else if (var8 < 100) { 
 | 
            var7 = "0" + var8; 
 | 
        } else { 
 | 
            var7 = "" + var8; 
 | 
        } 
 | 
  
 | 
        return var1.append(this.year).append("-").append(var2).append("-").append(var3).append("T").append(var4).append(":").append(var5).append(":").append(var6).append(".").append(var7); 
 | 
    } 
 | 
} 
 |