| 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 WvpSipDate extends SIPDate { | 
|   | 
|     /** | 
|      * | 
|      */ | 
|     private static final long serialVersionUID = 1L; | 
|      | 
|     private Calendar javaCal; | 
|   | 
|     public WvpSipDate(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); | 
|     } | 
| } |