private void writeTimeStamp(long time) { calendar.setTimeInMillis(time); writeNumber(buf, calendar.get(Calendar.YEAR), 4); buf.write('-'); writeNumber(buf, calendar.get(Calendar.MONTH) + 1, 2); buf.write('-'); writeNumber(buf, calendar.get(Calendar.DAY_OF_MONTH), 2); buf.write('T'); writeNumber(buf, calendar.get(Calendar.HOUR_OF_DAY), 2); buf.write(':'); writeNumber(buf, calendar.get(Calendar.MINUTE), 2); buf.write(':'); writeNumber(buf, calendar.get(Calendar.SECOND), 2); buf.write('.'); writeNumber(buf, calendar.get(Calendar.MILLISECOND), 3); if (timestampInUTC) buf.write('Z'); else writeTimezone( (calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET)) / 60000); }