package org.calum.joggerlogger; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class ISO8601 { /** * Returns an ISO8601 valid form timestamp as a String. * The format is year-month-dateThour:min:sec.milliZ * @param timestamp the desired timestamp in milliseconds * @return a String. */ public static String getISO8610String(long timestamp) { Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC")); c.setTime(new Date(timestamp)); String year = String.valueOf(c.get(Calendar.YEAR)); String month = String.valueOf(c.get(Calendar.MONTH)); String date = String.valueOf(c.get(Calendar.DATE)); String hour = String.valueOf(c.get(Calendar.HOUR_OF_DAY)); String min = String.valueOf(c.get(Calendar.MINUTE)); String sec = String.valueOf(c.get(Calendar.SECOND)); String milli = String.valueOf(c.get(Calendar.MILLISECOND)); if ( month.length() == 1 ) { month = new String("0".concat(month)); } if ( date.length() == 1 ) { date = new String("0".concat(date)); } if ( hour.length() == 1 ) { hour = new String("0".concat(hour)); } if ( min.length() == 1 ) { min = new String("0".concat(min)); } if ( sec.length() == 1 ) { sec = new String("0".concat(sec)); } return year + "-" + month + "-" + date + "T" + hour + ":" + min + ":" + sec + "." + milli + "Z"; } }