У меня проблема с попыткой заставить библиотеку DateFormat дать мне строку с датой, которая должна быть отформатирована с 2-мя миллисекундными местами вместо обычных 3. Я понимаю, что это больше по линии сантисекунд, но afaik Java не поддерживает это.
Вот код, показывающий мою проблему. Я ожидал бы, что это выведет до двух миллисекунд, но это выведет три.
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);
}}
выходы:
1973-11-29T21: 33: 09.123Z
Я мог бы просто проанализировать полученную строку и удалить ненужную цифру, но я надеялся, что для этого будет более чистый способ. Кто-нибудь знает, как заставить это работать, или почему это не работает?