I'm having trouble trying to get the DateFormat library to give me a String with a date that will be formatted with 2 milliseconds instead of the usual 3. I understand that this is more on the line of cent-seconds, but afaik Java does not support this.
Here is some code to show the problem I am facing. I expect it to come out before two milliseconds, but it will output three.
public class MilliSeconds { private static final String DATE_FORMAT_2MS_Digits = "yyyy-MM-dd'T'HH:mm:ss.SS'Z'"; private static DateFormat dateFormat2MsDigits = new SimpleDateFormat(DATE_FORMAT_2MS_Digits); public static void main( String[] args ){ long milliseconds = 123456789123l; System.out.println(formatDate2MsDigits(new Date(milliseconds))); } public static String formatDate2MsDigits(Date date) { dateFormat2MsDigits.setCalendar(Calendar.getInstance(new SimpleTimeZone(0, "GMT"))); return dateFormat2MsDigits.format(date); }}
outputs:
1973-11-29T21: 33: 09.123Z
I could just parse the resulting string and remove the number I don't want, but I was hoping there would be a cleaner way for this. Does anyone know how to make this work, or why it is not working?
source share