appendTime(timeStr, date.get(Calendar.YEAR), 4); timeStr.append("-"); appendTime(timeStr, date.get(Calendar.MONTH) + 1, 2); timeStr.append("-"); appendTime(timeStr, date.get(Calendar.DAY_OF_MONTH), 2); timeStr.append("T"); appendTime(timeStr, date.get(Calendar.HOUR_OF_DAY), 2); timeStr.append(":"); appendTime(timeStr, date.get(Calendar.MINUTE), 2); timeStr.append(":"); appendTime(timeStr, date.get(Calendar.SECOND), 2); int milli = date.get(Calendar.MILLISECOND); if (milli != 0) { timeStr.append("."); appendTime(timeStr, milli, 0); timeStr.append(timezoneOffset < 0 ? "-" : "+"); timezoneOffset = Math.abs(timezoneOffset); appendTime(timeStr, timezoneOffset / HOUR_IN_MILLI, 2); appendTime(timeStr, (timezoneOffset % HOUR_IN_MILLI) / MINUTE_IN_MILLI, 2);